{
	"cells" : [
		{"cell_type" : "markdown", "metadata" : {}, "source" : ["## Navier-Stokes Characteristic Boundary Conditions (NSCBC)"]},
		{
			"cell_type" : "code",
			"execution_count" : 1,
			"metadata" : {},
			"outputs" : [],
			"source" : [ "from sympy import *\n", "init_printing(use_unicode=True)" ]
		},
		{
			"cell_type" : "markdown",
			"metadata" : {},
			"source" : [
				"### Conserved variables\n",
				"We start with the Euler equations in conservation-law form, with the vector of conserved variables $U$ and primitive "
				"variables $q$. Then we compute the $P$ matrix ($P_{ij} = \\partial U_i / \\partial q_j$) and the $Q_x$, $Q_y$, and $Q_z$ "
				"matrices ($Q_{k,ij} = \\partial F_{k,i} / \\partial q_j$, where $F_k$ is the flux vector in the $k$ direction) (Sutherland "
				"and Kennedy, 2002)."
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 2,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "iVBORw0KGgoAAAANSUhEUgAAAKoAAAA2CAYAAABX0gK6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAJgElEQVR4Ae2c23UUORCGxxwHACaCNRlwiQDIgE"
					    "sEmAyW4yd440AGhgi4ZAAbASwZQAawzsD7f7KqUavVPS11tz3DqM7RSK1LqVT6VSppembv7OxsVeniNPDixYub6u2ewqnCVYUfyvuouNKABvYqUAe0"
					    "M3ORAAkw3yp+aKyVfqX0lwpW00g63k9nb2+uB8OxH8Ghj58oHwuWTTPzuy0BTCaT5USJfxWqVTWNpGIs6p8Unj9/"
					    "fhKOh2eF72FeTnpufqm+1ceZwtVU2dx56udwbp5z8RuS7UoKvFuedyQriA9oxNZ6qDx8wxKalZ/k+NsH+JI2C3tQIlxOG/pT/"
					    "VI95HRVWpd5QsYOdbZ+X/G+atpkf1batk18LBT6VeGZ6lq+HjeGnkoS5JuLZuEnXaG7fxTQGzp1pPQnEop/nOcs8yn+D8T5uuLXy/"
					    "TQ5qp+AFwWjtTms8JNBRbxm5Bj72FKFbkO+Kb4VtiAtPJQLv7WX0pvIlgR05Hkw6I+"
					    "UHzDZ02KSvmpHb7ogeLmIIUgejagMqmLkPpwi0RxZy4X6TBgqj6zcaQ2+Ox3FTfYSm79qmDbw7ugzzCJ0hn8UZi5aWk/"
					    "DizJLBM0kR+6SumTBY8+lyQW69J9dOSfgCNkReaGkkBVabjtN5WDhPlV14O8jUpKScjIYG8p3azMUiGn8FNbFjX07Tw6/1Q+i+gi7lEfqa/"
					    "WVhrKsWC6CEdeVmQ2va06PqoX2m1DqthSbDAg26ZSFiKodjlJyQ1I8QVtHG5h6bnID5zKT+"
					    "1PFdAlcjgZPM9jPd9VWIzUj1sMi3UwzNj0X4Ij9PRIwS2wPqCyEhqHP5RFA8ctoBwg9AkQNlkkrb6xlj89cyzmV+"
					    "RRAAxsHchnLgwHomcKSVI9xoPvCB8DeQioLH7JTs4B+"
					    "SqQid2o5Yf1tOvNFi8sDmA3PeCHM27GYQRYknNpFSwe0oPVyYyn4AiZkT0N1ECRzsk3wZTPBDLhrNCHer6UC2ovB7IxIU4GxQAJoDEwHHEmkLgh1UH"
					    "2DikfwF+1csUol7bXfOUsfr5NJxJfwJOUoVN5RIaX041baWcwFLMwAW64KEf5wGq7Tg8jpPpdxctCRimOvqstc+"
					    "Fo3xJBbIV3vPBWRMNPyguVYGUXGTPwj5IjXChsES8RQvkGMB4HSXVZdPGNAFdbAPeeAtclo/"
					    "kNdjZjoWTCaKCHp0qHuxpz1wKGnlm0vxR6STzW6qG3cX/"
					    "BVBwhM+N0lAKq+RWtaxRrMDbW4FEQ94bEYwlLHSq+1U5lWBCEd6C0QuWXgumteMQLz5STI7cTRXIs9oaPeO/"
					    "ZeBWjB4gFZRfkuBIYknibP1D+KZUHaFY9+H6m4gjXq5mDFFBZCb1gGRhsq0gKQzmzXAsFjLGcWLl1ig+"
					    "apJPiwThRxPuoBvlQtg7EMwTTOZdlPpGRXWXy5f0SevBDnoqj1gLbD/Uooe3wEa/"
					    "KsNqlpCUboCLEW1upPOwYHL5i0D9WPldG7jBVytzrksmCP3LPfQ31ZaRsbKH030ez68GPnf6m4AiZkd1RC6jKQbHQXGA45zbDJ4BSgBMT3yGVOZ+"
					    "yU9CfwVhbivQKZrFO2gnEByUfK27cJ6U58a8UQt+aZ+TA/SDmhMv4aI9FgTg0xouGZ7b6DqkuPnfYB3XNnenUV8ZoPYgvrkZS/"
					    "xFjeEJTcMT4m3HvO3a/"
					    "P7AmKwnTmsDfxZeeYiKZfHdlYdJIXk6s7+x5Xaz6AIHJMzAwZvI+KMQHFGVlEyftGBz4ldwghCCiX1wZ6vJCRutWQM+Mi8mOv/4lP66L/"
					    "OQTQsKFuRNmWFr8R+vB1/1PcfJrdePp4zlwhLFo3C/3Xb86t0OKrQSAimM+2QeKBjD5UTLZRHALAaHsN8o/dU8jPlSXUy6gBACkIdInKmuU43Jn/"
					    "BBvDlvXYln1jCy/FMfg46CEJe74vsqjDKva6EF5nflSHjvEB8Ux2FfKy9KD6ltfyW/"
					    "7VD4bjnxfGA1nNJ1F1UNLQRrYxpJkZZucSpxIsQxsLZ3Jncqc9uJtp3EWEIvJLClWPF5UGIgnCjExL9auVSb+o+"
					    "RWPca5UuCtpHgRZulB7W8o2MJuycODymbBkfi43Uhxs7M7oHZ6/PMzAEYSAFOHLuUCSq7l8C0bRSvt/"
					    "DXFjd9FX3pmUmgT1iWPnQO3YI7Jhxd8Yl4leuB+fRHdST4jjJHtnC7vipXsSiwlAwqAMPbUnKsaFMwJvwFewCCVB1iwsEdq416qVprtmp/"
					    "PxMBSdj6JDz49PjDjdqR0th58m5/GY4nYy4isrXPILlrU217BKdDMoXte52tO+wFD+k1t72y/"
					    "WM5RW3nALzeJTPjC9AeV6IHFtLSc+LmdBbpzFlVK+KpwXwrHis1K4omVglq+oPLx6/"
					    "ruUbGoU65x6G8t+fFyODHfOVsParsoSL1syNhyjxhc7xv+a0deKyQ1ICVzBdX4p3pmu8WSdd6U8mWcpDmkdCZH+ZW8BipQZ4aCAIdVxU+"
					    "1qxyukF4qv2XB9YxlYxvGomKpOnWUV8lroAK1QmErNLCLPupWTEwVsq2BCtS2PurThmpgT/"
					    "9Osdg7lBs65irWFmqg+qhbOGm7KHLd+ndx1rdwzBWoWzhpuyjyLn6FemHz7O9Uj32Hhz4u/"
					    "gvMCxN8AzuqQF12UniXtPneWmm+x+abq867ocuKsf3c69a/7BzyEgffPBnxjRVvBvF2VKUMDVSgZiiroCrWlJc/"
					    "Kk3UQL2emqjAnOaypFjU+A8vcljsbN1qUS9o6v12z+t+/GitUqYGKlAzFVZSXSA9VDusafJHcSU8d61NPfVPnHGBkMMSb8/"
					    "zGh+AbP0O34OUPPdmvX9eKa7vn0pZY6kCdaymEvUENqwkf8rgrqAUA1qun9x/YekZ4HIlBVDtpE/dOX5JKza7Q3XrL5xrAQ9/"
					    "k4NRc0+qZ074ABfAQoDWwEuacKTy1kvUyqu0RgPVoq5R0EDxW5XFlhELCvGW/0qALP2XQZpXCjRQLWqgjLFJbzEB4/uojVnS1o/"
					    "7ojr1sUADFagFSlMTDk/8A0m8hT9W/uR/"
					    "AiwT6c9uVbf+svnFcrb+F0Cg5bBEqPekZTodbFUt6qB6uoUCJFs+vuiBlfo8fhLNb9Lrtm+KmTGuFjVfmeaHcuVkf+bA21CDf+"
					    "ue301tEWqgAjXUxrg0F/eL/"
					    "hPgODF2q1bd+vPnu+Of5rOoLXI1UIGaobHAP13qnwAzpNmtqhWoefNd8g94eT3U2kkNVKAm1dKbmf0PeL2cakGWBv4HZ/"
					    "VraflQxkgAAAAASUVORK5CYII=",
					"text/latex" : ["$\\displaystyle \\frac{P - c^{2} \\rho^{2} \\frac{\\partial}{\\partial P} e{\\left(\\rho,P "
							"\\right)}}{\\rho^{2}}$"],
					"text/plain" : [
						"     2  2 ∂          \n", "P - c ⋅ρ ⋅──(e(ρ, P))\n", "          ∂P         \n", "─────────────────────\n",
						"           2         \n", "          ρ          "
					]
				},
				"execution_count" : 2,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [
				"# define symbols\n", "rho = Symbol('rho', positive=True) # density\n", "p = Symbol('P', positive=True) # pressure\n",
				"u = Symbol('u') # normal velocity\n", "v = Symbol('v') # transverse velocity\n", "w = Symbol('w') # transverse velocity\n",
				"s = Symbol('s') # passive scalar\n", "c = Symbol('c') # sound speed\n",
				"e = Function('e')(rho, p) # specific internal energy\n", "\n",
				"E = rho*e + rho*(u**2 + v**2 + w**2)/2 # total energy density\n", "\n",
				"# (this is needed to rewrite the thermodynamic derivatives in terms of the sound speed)\n",
				"de_drho = solveset(Eq(c**2, (p - rho**2 * Derivative(e, rho)) / (rho**2 * Derivative(e,p))), Derivative(e, rho)).args[0]\n",
				"de_drho"
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 3,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "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"
					    "tCFPyaOfys1P3cUdY29zm5vmsDJEeibaxeZjLt+"
					    "vntXmnstQYzWpY7HsriSRhpr5XtFsrxf8xxXJtl4eeRuHHgfvSABGXbNoyf53PXTAWzm27UyeDPQ8+"
					    "0WLBMntS6BaBNS0WcQRVhRNz3SzMgc2n7t0IsRu4+d8NU2a+"
					    "S7GqwBCZvnAEjJITl52bhLwHq1WALNI9mk4ofQQcPTcbB9EzgRAvybUIx6pVmKkTv2l+SaTzv0tF/"
					    "myzI6X5QxKk218S2prPu0mGcfld1hWXhh3P25TSP83Ul6jwmsQ4CObOvuXh0Co3n+YOs65eFU1yXwRsk/"
					    "6JFwX2Efe4yonkMXDWKEjvl1GyeNzKdlwfArzdXGtzR+XT3m2SWyf/sYXn+JqDHu/ttuhB/77JtAKQQw7DYjFeoYWL8jv7Q7/lJ4WccJE1C9Z3rCZ/"
					    "nc4DRO6zz2ZF4qLxkV41pdtNdbIaoNowPjrdmtm7Y4Zk1fmqrhuyanoWmb51BSV8cdyetfkZpfqAgS9osloMrOt7BeaqFDeIdQrfN5FDsTuK4EGKV7"
					    "oXbwUD4vUOB/o+3SjKWYV0cb/kEacXe18EmU0rQ24tqfWvimmkteN89xpXM0r/"
					    "OLiwuGxvnW0F01No+"
					    "EjCsAH20CJmACJrCDgPoUpk48kE9nZWcCJjAjAbUzPvjPQMg5j2XtTMAETMAETGAOAozclfaCxxz5dJwmUBQBG3dFFYfFmIAJmMBpENDoAfMAmW/3/"
					    "jRy5FyYQD0EbNzVU1ZWagImYAI1EYg3ej1yV1OpWetJELBxdxLF6EyYgAmYQHEE+PzJY43gXRanzIJM4MQJ+"
					    "G3ZEy9gZ88ETMAE1iDQGnUetVsDvtO89gQ8cnftq4ABmIAJmIAJmIAJnBIBG3enVJrOiwmYgAmYgAmYwLUnYOPu2lcBAzABEzABEzABEzglAjbuTqk"
					    "0nRcTMAETMAETMIFrTwDjjn+leK7l87WnYQAmYAImYAImYAImUCcBXmDCnjvjbdk7WviLGAL9yrog2JmACZhA6QT0NuqLViP/Lcv/"
					    "tfJfs0X+hWRNWksv91r1uQ6MK7mJvPhHGOy5V34sO463jzYBEzCB1Qnows//gb+X/"
					    "6OWX7T+o5Z3WudmvShXk9aiwJ2QGNeBcYWZg5eNu3HMfbQJmIAJrEpAF37+HPym/LchROs8dWGbu/"
					    "ZiXE1ai4F2YkJcB8YVaC5eNu7GcffRJmACJrA2gacS8LFHBP/h+kidA//"
					    "pWoqrSWspzE5Nh+vAuBLNwsvG3TjoPtoETMAE1ibAvJq+F+Bivh37S3E1aS2F2anpcB0YV6JZeN0Yl6aPNoFlCLSjDzx+uq3lk7ZfRcpav6f15/"
					    "Kbt4LkP9E2k8vva90vBQUo+ydHQPV7yKjcrRIyXpPWfbyUDzpbRlO4ttzRwjzHMKS1abeLwKnUgV35yx2ek5dH7nKXjuPLReAnVXQmivOoKd4KjLh/"
					    "0goX2XBx0X0QAfZN4EQJhOG27yZmiAG4BJ6atPby0DWIa89T+dxM8tIKcxp5mcVuGIHq68CwbGY7KhsvG3fZysQR5SKgi+g9xYVRh3uspfsIijvpd+"
					    "zE6Xg+48McJN9NA8TuuhNgtLsWV6xWXVd4IvBEfvOEoAX6QT4vs3ANsstDoNg6kCd72WMZxMuPZbNzd4QZCPyhi2dMGP9W8f0ccSocw4+"
					    "RCQy61H3QPht3KRGvnyKB7o1Omse46+e7dyW4mrT28XqtQEbrUhdPDEoZHU21lbheex1Ymmk2Xh65W7ronN5BAjLSmkdO8rlz5iK6mW+"
					    "nde6YL7Xvo/zUfUo3vG4Cp0gg2oby1mdcRFgRNzk1ae3WFWnnOgPPXzv7YsSue/3pHOZNCNRcB9YowZy8bNytUYJOcygBHsl+TCo85xG2NWqn/"
					    "Yzm+WILHbvrQID6HyNIaX5j5G6rfaQHrLBek9YUT/M5is61h/"
					    "3faeHJQhEGdCq44PVa68BaSLPwwrj7c5uD8NfKkNM1gS4BOrDuRbQv7DtdbEvq0Lr58LYJ5CTwRpH1vTx0X+Hdm6Gc6U6Jqyataf4YoWN+"
					    "3ca1N5HcSGL42Q0nUGsdGJ7DvEcew+svIQXj7r/"
					    "tRvixz74JrE2A0bh41HSmiysXXEYnMPAa14ZtXq6IcPsmcKoEVOeZpvBZPtMWGqd12gnzU59dhZTxW5PWINay5BrDtaZxbRidLm/"
					    "N+ilBy2WIV2MdGJKvuY45kte/QteNWLFvAqURUCXne1IvWaTtUgsTxf+q5XUStvUNPO2zM4HrQIBRuhdqBw/l0y7wv9F2iYZHTVqFsZnXi8/"
					    "15wdW5O5q4ZMoJfJtBBb+U1sdWBvn0bzOLy4u7ikXfLfnripu9xHY2hl0+iZgAiZgAiawGAH1g9xMPpBPB2tnAtUQUJ3lw/"
					    "8MiJzzWNbOBEzABEzABEzgigDTPzyH17WhagI27qouPos3ARMwARPIRUAjHsxdZL7d+"
					    "1xxOh4TWIOAjbs1qDtNEzABEzCBEgnEW8geuSuxdKxpMAEbd4NR+"
					    "UATMAETMIETJ8DnTx5rBI8XuOxMoFoCflu22qKzcBMwARMwgZwEWqPOo3Y5oTquVQh45G4V7E7UBEzABEzABEzABOYh4JG7ebhei1h1l8tbZTEBme9"
					    "AvVFYFXe9NWvvVq5Tyks3b942ARMwARMYT8DG3XhmPuMLAYy5/"
					    "2NTPkbef7Scs12Bq1l7F+8p5aWbN2+bgAmYgAmMJODHsiOB+"
					    "fAtAulHPu9oT02TkGvWvlUI2jilvHTz5m0TMAETMIGRBBi5418pnmv5PPLcSYdrhId/xOBxHoYAoz1/"
					    "KOytfLvKCKjc0n80eSH51fyhds3au9XklPLSzZu3TcAE5iega4j75fkxL5EC06Kw584w7hhx4e9WCJx15EUVCGPuJ/kbI0Dr/D/"
					    "imRYbeIJTo1PZUX/4H8bq/nexZu3dunJKeenmzdsmYALzENB1w/3yPGjXiJWBM/rjV0s/luUDkRiTqUPI6zTA6/UQ0IWBEbvGsNN6/"
					    "Ml2FRmoWXsX8CnlpZs3b5uACcxKwP3yrHjXiXxR404d0G9a0vlBZ9rm0d5N+dw9zOYUf9eonC2tsRGXrG1fXqT7d+"
					    "3HoPuP1v8nvxkO3ndOKftq1t5leGJ5cTvtFrC3TWBGArp+rNYvky2l7zY/Q/nyWHZRp4KM0R0eAWPQxePYW1onLLtr08SITOeIZU/"
					    "niAjvSOMTLb8cEUe2U6WDoV3mYDzUevoInbcy0+0tQz2bgCMj6tOvMEYYz+T/2Po1aaedMH3huRbW/6nlvtab+iy/"
					    "yLzAeYxTPrg2uJ2OgeZjTSADgbbtERN9MNeY2ftlEnObh8I8bjHjToVIhfmHFh7hbb6FpvV3ZE3+LIaX4n2i6G/LX8RwUjp0UI+1YCDh0rmMMMCI/"
					    "aAFDjSkM/ncOd3T8r2WV4St5ZQ+GtHyi5b/"
					    "sa3lUktMuF1L2qB00dunX2H8Efh3gyJZ6aA92r+VpObuti0L2grbs7SZNbKvfC3WTpXW6DYKE51XTDtdo4yc5ukRUJ3merl4vwxJpb1Ym2/"
					    "TG93u12zzSrsZkJD2f2vhO7Lc4A++5v+JTC/"
					    "kEMqbsRvDLkm3LyzZPW1VaVFxeYGjGa2ZFsu4s5QWRhHGHe4j61qetgvrjLLQMf9T6+"
					    "hrnNYxPmNkpg1dxcP4fCU9NDzK67JVgbGKUVq669WvfHAnOrhhrJTJXu3SQn1qboJaXX+XX3peWqmHPZXNou1U6U1qo+SEc+WV0E4Pg/"
					    "URJnCYwOL9MpLUjhZt822ak9r9Gm1eaTLl6b18BoG45mDDvNN6c5NPfg65JY277yWGTqnrHiiAlyrmcFTcueLeqVcFwCgXri+/"
					    "hKOJyg2T1BGO5slOaT/S0o13cHw6Nww6RrlSdg+1nRoYg+Mcc2Bm/"
					    "fFo4UzxUiaz6p9Lu3RjWG+9iay0ZjXujs3LmDLXsYu307Y+IHNsG+"
					    "Wco9spkdiZQAEE1uiXyfbibZ5Ej2j3i7V5aaRMeGKW9l8MsrCd9sna3O0WMe4kEkMG1+2gYnRok4mrw7L9fqu013jMmT6S7ctMWN+"
					    "3052tVjQHr3T30HXOPeb8SKdrULDdPJaKA2byc+pPjTmM3llGiBMOubRvDNG2LtDQU+"
					    "2XSZpzrebKyxB9a7TTSW2UzKgsuKYc206HcPExJjAbgfbaQvxL98ukuUabJ91J7X7hNs+89q0yQbgcU4vox7g2H3RLGXd0RogNo+ZMAln/"
					    "Scs3WrI7xd8YjtkjHhZh81hWGvoKiBjisW3fqAEjMsyxKsE1o0PKBw2CCsV2NI4S9O3T8Fk7Wc6kn7q2qyw4pDRHe2m0y2dke+OUF+7qUkNvs6/"
					    "GFeVnrXZ6TBsFdUnttMait+aVCajtLd4vk+UV2zzJH9Pul2rz9LFx/UdzuKY/"
					    "1sagPvhGnDXGV+EQOdYllYOOk+fCkbA2ex1GHBMC45Elo1bfaJs4Rjmdc1MnYBgy0RDHZMPNCwpNyFUhDuoEFd+U/LTJ9HrE15t2m3/"
					    "2o7fP4OA8KuAaI45KduOeaQ2Nn+RTtoyuYlj0aVZwcY7Psnwn/"
					    "Y1xJH9tnmMAMb+CuaLcqdE+mOPFY4ymLLR+qK3p0PWddGZrp4qrpDYK3MXb6T4GLWvaJ9fC37W9Vd+1/"
					    "Ubhz+SPvt7qvElOae0sM+2jbqCXfuCTtjd6tU4959oz1xMdRf/"
					    "FKZ2pOunLaJvNJ6Dkc6NCO+VN9kU479P+JYd717L1y6QiPdnafBvfzrLZm6vdO4mv2L655bdb/"
					    "dWeW4cOYP+NIQelxyhxKi+PiaJCA4vJf80fyKfHpus6nsp+9HfQFA/p8dyZlxQaQ0M+jQxjL31xgk6d4/"
					    "Y6nTspP7sibbWwO30keKZwjGDyzwUA7bsuXFzYyOOqrtWXakzXV9U2JHHppwH3NuIh5695TM3ag5vykK2dKq7S2ijZXLSdDmDQvDim47i+"
					    "vNaSGksYUXxqafMZI23P6o7RK2F0Xsz5nf2ac6RO+hyMmXD0cVzn6Xtmv/YM0B66dvqKI0u/"
					    "TAKKK1ubb+Mrrd0v0ebDcKNcdrm0zu06Zpxxp8LjwsFFgrvDcB+"
					    "0grH3SMusFVrx03AwmrhbSkeQqFRbxhSatHzWstMpjjnyE4YZ34ijcoajYvC2S2qAxr7URzP5tDOBKgmojmdrp4W2UcplsXZ6iEGrhVFeHKP+"
					    "3eseYR/ZuYSboLc7Es1TA17gmtVN0NnlyrX+5xCp+JiTDOdufuKQbP4h7WjJltiAiJRetjZPcjPl71T65q25+ruK58auHTvCuSPsGidhiGysSRUM/"
					    "1aQxSmu8ySiGInDmOSbNTgyitHUrcxYwPusX84dlB8OHOG4kJ5Jz9S7ZC4MG5a70lX8sIjKmh7WWP7a3zdKyqdZ9urS/"
					    "ixlp3jSckv1NevaX6z+mrV3Qa+Ul5zttMQ2CuZB7bRbHhO3DzH4oHIO4435uhuDo01vywiZqGHMacfqnd04ajMzWad431McXKe7/"
					    "Q5lsYT+Q9qbLEpLlut5y2vLU9zpNT5nmyedQfnbEnR4Y5G++bCMvUd0byDSg2NUL6ajpfu+Wh9s3KkguUBQmX/"
					    "txBIGRlxczjqF3jn8qE3Seqv4+e7LUW5MfkYmhMYNi5HncvgQoxTGfcYb4YxG8o8XkxjpvLTBTpA/"
					    "7BSlU63+mrV3S2emvGRpp9JGPIOuOd18Hdg+to0S/"
					    "aB2ekDHwd1DGOiYSyJKjk0fyXLz3WeEHEx7ygGJhp39RKKXaxXaNnrbNHkKNOn6NVRzBp3UoUvF073W84RmVjdEewjQsYtcz5VeljaP7jH5i3wO9I9"
					    "t97O3eeWdOkV2aBddF2GDbh5udM/es82IDyM/"
					    "l51jmBvBt9F6E1T4Pe0HKuchjmOPmUsRjx8U1V6HBRww+g6clJ++iCKszSub3bu5OGSIj2a025lAzQRytNNS2yjlslQ7HcOAY+"
					    "M7lVF3MKDOdG3qGiGxP7c/Ri8jKV296Bn02OlI4WN1dvs+tG9d59vr/"
					    "xKcx2jfYGr15eyLN3G3KznaPFFNyl9XTLrd5p2grTJLjxmwvlSbR2M8EU1lYVziBuVhjHFHpdiKtAWG8XafFLtO+"
					    "4HBRF8Kq3Fa543ZMy1TDDwMyN6Gr/iYC5jGybF9gK6EXBmcg/KjeHkMfBkn7vFhhHt35U36pQB7DeVJsWU6CQaK6qc2uuC66Nt3U7NSs/"
					    "bIc2V5yNVOB19z4KNlqTZKsSzVTgczkCbaZde42Bgh4sOLFb8O5KRDJ7mj9Eobxmg84pskYOBJY3V2r8mwTvsbkuXt/"
					    "O60pYFyRh02RnsTsXQN7ot1LPGTD3xGVWlXnB/"
					    "GBW8yd3nkavNKpkn3OvfNb8Qgna8PExx2Vvcmo9nR93OjL7Ab1lYMKnMU7lkbhojuyw3p6Q+0EYZAhNNwebu22zBi/"
					    "z6fDG89zmt1EN6FwUXuYV9kY/LTHvsf+UDtNWKTNBjFPNNxWxUz2T9ktSnAIQcufEzzx/WRpvIY5Zi+XBO7S/"
					    "Nr1h4sa8rD0e1U9YvOZNA1pz12yTZKmczeTscwaCsJHWx6jb6nba7B8djzruKko57FTdDLNRoDonE6n/JmSsmUvqGN5bA3UScsG6fz0QznTd/"
					    "Whh1zU38V+YHfCdojxsF9sdLgxZAoi25/S9smn93r/"
					    "tFtHqFj8tceu2S7n73Ntwz4+08M6M2AVZtX5tPy6ZpBbpBxp5iiAZJgvMhA4W4+R9KXmo7FyNkyiBTGMDx32UPvtDdR6xwyzXlUpJjbwPZWBWxP+"
					    "Lt8jM8+Nzg/"
					    "ivtSCxdN0mH56uKoMAwdGkNzAdA2lZ+XPKbMG0FbX34UvKr7Xvl5oyUMV8qAsHtauqMFqwrtSbxm7ZGdavKg+"
					    "pCjnZbcRimTJdrpYAZtJWG05bX40zaZdM11i+svNwZct7kmzulG6ZUm+pOXWrhON4aR1qdcM8fmaapOrvNc/2H7Vy2wjrCtb/"
					    "Vp31xulPYQIZ1j++LNiG/E0frkfWPUxj7Fn6PNE93g/CnNU+6bo90yQAVzfL4LPLivvaEThjgKmpErLhajGp/"
					    "OCWOQRnFTS9yVceezMZR0HPt+0hIZ+"
					    "bkvIwoblD7najnT0md8jMqP4uCOl8cFvU77shhjiqdpNPLDgOpNb6VA8vhhpbSPTbZm7ZH3qvKgOnxsOy2yjVIYC7bTsQy4nm6mwETF2RGW7M62Oko"
					    "vqYpllmvnyBzk0tnHeqSU0YeP1h4piPWgvrg9HiPrWSI7ZvwAAAhWSURBVJyb+JRX9OFJcFOWx7Z54huVP+"
					    "XpJPtm5Yu2fFTbGGrcUdC9BUpp9DmJw1j7hxbuzjbGitbjDg1DMXUcyxwujDJGwNje+2Hk9OQd69zBAqgLaXR+"
					    "FAffrRvFYIemfcHceaP5GEelYMnqlPd4tBPxwpRR2MF3EnHiAT+7/"
					    "pq1B6sF8xBJZi+"
					    "HiLjH72unpbZR5Odopz0YvgqawuCrSBYMqEVvLTr7im60dl07biqiwX2xjmeQgXPSfpsw2imPbLv9qYJHu742TySj86dzaumbR0M65oQ/"
					    "HTq5rRgU7PtDx3b2U3h0/psKkuzfCtMx3FGk32raPAZNzhm9qngxSJjDgf7GaZ1KOyo/7TmMKM7mWo1o7RpRo9LU+TS+o+I4lKDix/"
					    "hmJHPrkfuh84bsn1t/zdqD35x5SNKYvR4laW21U+WvyDaKXmnj2nF0O4287/"
					    "KnMNgV1xLhteitRWdfmR2hfXBf3KaLgXWphakgP7BonWs+gy85DLszxbPV5hU3YUW2e+"
					    "lapM3DIKe7MSAyJmLitgyyq6C9v7yZ1TdsTXzd4V4qTFppmjQFlQp2rEMDczoY7sVNyQ+VfNCQ81USk36Zu5EymBTJ3Ce1FZ2LxWL/"
					    "n5grTzVrDwankIfIS8dP22mpbRTJS7XTKQw6SBfdrEVvLTr7Cm+q9jF9MenSV3JzN3efl7Z50p2SP/fNkOtxf+oJ6wYxz+qxCnqwoaVjscBxW4/"
					    "sFP5EYYzmbR5vtsdiGZNOOAp9c0wETvEVP7p5ozfmG0zJz6yVvNWGxu6j6ilZnu0c6aOceMze1Ae227DZ0swVcc3ag8Ep5CHy0vWVt7SdFtdG0SuNX"
					    "EOWaqejGXSZLrxdi95adPYV32jtqrOD++IkQUbumulTSVj21U6bJ/4p+XPfvKNkzi8uLhhu/"
					    "V0LExOzGReKizg38+"
					    "20jWHACBpvfHAhb5zWMfh4C7P5knZ7HBWrupGhqxyd5m9bLoxaMN8oHCONlPGmPGNHSX7N2oPjKeQh8mLfBExgOQK6dgzqi1HUXmc+"
					    "aTWrPbBcbq93Sio/Rml5A/18yGPZqbT4Hguv4GM84m5r2TLsmtCrIWD+Uoy7YowEPrFiw66FU5DHBYK7QPyNU7kV/yhZYmvWHqxPIQ+RF/"
					    "smYALLERjUF7d9cExfYoT6Zy1F37gvh7C+"
					    "lGYbuRuKQpWHTotK9HboOT7OBEzABEzABEzABEzgCwHZUZuRuyFz7r6cOc8aI3tjX9aYR4ljNQETMAETMAETMIHKCaxq3MnKZB4eb+"
					    "V46LfyimT5JmACJmACJmACZRCYc87dwRzKqOMFjnjGf/B4H2ACJmACJmACJmACJrCfwKojd/"
					    "ulea8JmIAJmIAJmIAJmMBYAjbuxhLz8SZgAiZgAiZgAiZQMIFVH8sWzMXSTMAETKBoAprWwj/"
					    "F4P6thU9I8empbN8qJeJcriatkecaNYf2En3zXLZUPHK3LG+nZgImYAJHE1BHySek3svnI+J8pZ+Pi7/"
					    "TOi+pFeVq0hrgatQc2kv0zXP5UrFxtzxzp2gCJmACkwmoo+RbVjflb74NqnW+OMA2/yJTjKtJa0CrUXNoL9E3z3VKxcbdOtydqgmYgAlMJcB/b2/"
					    "9b3cb0Xv5j9SZ8k8ypbiatAazGjWH9hJ981yhVGzcrQDdSZqACZjAEQT4Y/"
					    "fPPefHfDv2l+Jq0hrMatQc2kv0zXOFUrmxQppO0gQmE9CoBJPImUCOYxI5c478EewGh39OncDAUblbJXCoSWvwqlFzaC/RN8/jS0UMMY4Z/"
					    "aSfu6OFPi9u5LTZ72zc9XNxaIEEVKHfSRYVu3kk1VZ6jL3nBcq1JBOYg0AYbvtuaEp5LFuT1iirGjWH9hJ98zyiVNTH0b8xv7bp49o+j5ep/"
					    "u9QtH4se4iQ9xdBQJWaOxbmE6VzjXhDkIpuZwIm8IXA7S+rxa/VpDVg1qg5tJfom2dPqaive6LgJ/LTwYsPCsPYYzRvr/PI3V483lkaAVVqRu/"
					    "eaOE/"
					    "if3XdaUVkPXMTaBvrl2kGaMkMW0hwtfya9IajGrUHNpL9M1zeqm81qkMYKSOQQ7cwdF5j9xdgfJv4QRkyDHHgO95ccfC5x4+KSw+4qpNOxM4fQKq8/"
					    "E4tu/iHmEH5+MsQaomrcGjRs2hvUTfPKeVirjRz9Gef+3EECN2HzvhX23auPsKiQNKJaAKz3y7c+ljxO43LT9oOzq0UmVblwnkJkDdjzv4NO4YuWN/"
					    "Ka4mrcGsRs2hvUTfPMeXSvP5GPVvl51Tv9P2Hwo/eANn465DzpvlEVBF5m+VPoUyrfuRbMCwfx0JMC3hQU/"
					    "G7yvso9pHt0PoOXSxoJq0BpQaNYf2En3zHF8qjNAxv27j1K7vaYMFw++gs3F3EJEPKIBAPIrdSFFFZ7Lpq8I6so0+"
					    "r5jAXARU518p7s9tG2iS0Toj2N9qedYEFPJTk9ZAVqPm0F6ib57jSqVty4zMx0j8WRuGkfxc6wcfyZLiDX7sTKBwAnRYvCnb/O1Sq/"
					    "VS2+lbRIVnwfJMICsBRukY0X4onxco8L8ZeuHXsUu6mrQGlxo1h/YSffMcXioxr45pSD+0p/"
					    "FN16dj2vf5xcUFw3x8TuKuTjz4HLdNyJ4JmIAJmIAJmIAJmEBGArLDeGHwgXwM4lFO5zAA8lL+uR/"
					    "LjkLng03ABEzABEzABExgNgKM3B39UpSNu9nKxxGbgAmYgAmYgAmYwDACGnFj7izz7d4PO2P3UemcO74b1j3yrcIGvZnRPdHbJmACJmACJmACJmACg"
					    "wnEW/AHR+5km/EFCQzBXodxxzy7XRPTPQevF5sDTcAETMAETMAETCArAT5/8liG25DPGe39iP//A4GYuCdy0iliAAAAAElFTkSuQmCC",
					"text/latex" : ["$\\displaystyle \\left[\\begin{matrix}1 & 0 & 0 & 0 & 0 & 0\\\\u & \\rho & 0 & 0 & 0 & 0\\\\v & 0 & "
							"\\rho & 0 & 0 & 0\\\\w & 0 & 0 & \\rho & 0 & 0\\\\\\rho \\frac{\\partial}{\\partial \\rho} "
							"e{\\left(\\rho,P \\right)} + \\frac{u^{2}}{2} + \\frac{v^{2}}{2} + \\frac{w^{2}}{2} + "
							"e{\\left(\\rho,P \\right)} & \\rho u & \\rho v & \\rho w & \\rho \\frac{\\partial}{\\partial P} "
							"e{\\left(\\rho,P \\right)} & 0\\\\s & 0 & 0 & 0 & 0 & \\rho\\end{matrix}\\right]$"],
					"text/plain" : [
						"⎡                  1                      0    0    0         0        0⎤\n",
						"⎢                                                                       ⎥\n",
						"⎢                  u                      ρ    0    0         0        0⎥\n",
						"⎢                                                                       ⎥\n",
						"⎢                  v                      0    ρ    0         0        0⎥\n",
						"⎢                                                                       ⎥\n",
						"⎢                  w                      0    0    ρ         0        0⎥\n",
						"⎢                                                                       ⎥\n",
						"⎢                 2    2    2                                           ⎥\n",
						"⎢  ∂             u    v    w                              ∂             ⎥\n",
						"⎢ρ⋅──(e(ρ, P)) + ── + ── + ── + e(ρ, P)  ρ⋅u  ρ⋅v  ρ⋅w  ρ⋅──(e(ρ, P))  0⎥\n",
						"⎢  ∂ρ            2    2    2                              ∂P            ⎥\n",
						"⎢                                                                       ⎥\n",
						"⎣                  s                      0    0    0         0        ρ⎦"
					]
				},
				"execution_count" : 3,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [
				"# compute the P matrix from Sutherland and Kennedy (2003)\n", "U = Matrix([rho, rho*u, rho*v, rho*w, E, rho*s])\n",
				"q = Matrix([rho, u, v, w, p, s])\n", "P = simplify(Matrix(BlockMatrix(Derivative(U, q, evaluate=True).T)).T)\n", "P"
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 4,
			"metadata" : {},
			"outputs" : [],
			"source" : [
				"# compute the Q_n matrix\n", "F_n = Matrix([rho*u,  # flux vector in normal direction\n", "            rho*u**2 + p,\n",
				"            rho*v*u,\n", "            rho*w*u,\n", "            (E + p)*u,\n", "            rho*s*u])\n",
				"Q_n = simplify(Matrix(BlockMatrix(Derivative(F_n, q, evaluate=True).T)).T)"
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 5,
			"metadata" : {},
			"outputs" : [],
			"source" : [
				"# compute the Q_t1 matrix\n", "F_t1 = Matrix([rho*v,\n", "              rho*u*v,\n", "              rho*v**2 + p,\n",
				"              rho*w*v,\n", "              (E + p)*v,\n", "              rho*s*v])\n",
				"Q_t1 = simplify(Matrix(BlockMatrix(Derivative(F_t1, q, evaluate=True).T)).T)"
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 6,
			"metadata" : {},
			"outputs" : [],
			"source" : [
				"# compute the Q_t2 matrix\n", "F_t2 = Matrix([rho*w,\n", "               rho*u*w,\n", "               rho*v*w,\n",
				"               rho*w**2 + p,\n", "               (E + p)*w,\n", "               rho*s*w])\n",
				"Q_t2 = simplify(Matrix(BlockMatrix(Derivative(F_t2, q, evaluate=True).T)).T)\n"
			]
		},
		{
			"cell_type" : "markdown",
			"metadata" : {},
			"source" : [
				"### Primitive variables\n",
				"Now we compute the coefficient matrices $A_x$, $A_y$, and $A_z$ for the primitive equations ($A = P^{-1} Q$):"
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 7,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "iVBORw0KGgoAAAANSUhEUgAAANIAAACWCAYAAACrUNY4AAAACXBIWXMAAA7EAAAOxAGVKw4bAAARuElEQVR4Ae1dXW7duBW2Cz8P0hjoAu4AXYCdrG"
					    "CcHSQzQN+T7GCCPCVvwcwO0rwXyDQ7SLoCJ15AgcwCCjQwuoC23yfrXPHKvLpHFikeSoeATIrkJT9+h0f8EXV8/OrVq7Ojo6MvuGLuw+vXr5/"
					    "EEjzOGVgTA9CDr2jvJtZmpB2fBAm/IszMofs9vPGwM7BiBn6JtP0R4h4zPlSkt9AsV5wIWzmiwLUI5t8o/3tcv8zNv2PoJHuIC6T/tct9E0IcA40i/"
					    "eEmyv/OyQAEwKn0JfwXuDgTeIHrI8LRqUMObI6hYzUFF65IHZ+zhCC0Z6joHvwPUiHC1wjz/"
					    "q3E5fQdQ8duKi5ckTpO5wpx8+YqUtkl4i4g2HuRtNRRjqFjNAkXrkgdoXOFLlDRt0hlsj5lem7nGDqGk3Bx0pW3P9Q+JTkl4aL4C+53Fl64/"
					    "zvin8LnFMWMAx6SxCcOcW1wcU0iHRa38zrUrRlt7udE5Rg6dlNyoR2RXqJSLoo/4pLdpgYR4qlgj+FbUyLifAJcz3FxMc/"
					    "1x773ZUiaxYmSDHGlUbYpYB1Dx14yLg4qEjrhGerl/J2O++b9aQnjYnN+5i/igJlbklTu5wGAzwhzkc9RyrI7NQDOMXRCUHFxUJFQ3u/"
					    "ofLLD9CPu+ztL7Jjvu3pNhN4Bxc7IiXtO7ehyP/Fvaon/"
					    "7T+"
					    "EwlzydOR7pZzOMXTsJuPioCJBiZppSPskZyfcro8Qx87JuE8dtrKhAOdvPSQyEhUbPYVL4Iops8RlXcM5hq5XpOTioCJ11TaLdo5O10Fc81YXccU6Z"
					    "4BFgs12Zg8n037CRfxZO6qAGPD50JHRMcwmI9IcDyXH0DGfhIsxikTh9xWG66NG8Oigz3DJU7WDOX+IIw/"
					    "XQ1sHXFzn8aKSlXbc4XwQAXGOuCtgDR9UkWxJohxDR2MSLsYo0s6TvO2c7BCiXN/P1Ak6Cnoh1E9FpsLL0/"
					    "2ojSNZ3L0TrL1fzncLDJwaf4PfjOasGWHi5vrzKe9zO8fQMZyKi5OuyIMhbiG/"
					    "Q8VcxHNBTMXiU5SHLX+Gb2HDQdZBfF9ETHR898Vt8OJK1KC5+SO8PcQtuaT/"
					    "w8wYHcONLPh3MhfHwfdIHFF2Rp2unjpCwM8dxQfwSYw7ZyArA+"
					    "hnfIfKryaOx0ztsoJKVDhHpDkW64ngejFLYWAxioSngqyPLpciHG9HPQwsRpFAueyE+YhUT/"
					    "9bDNIlKRK3vB9hZJpj+3gxHcAbkoaBMbt2aWrMVEqrQD4aZeLXix1mYEkj0nBLPdUZyMjAYkakjBx50RkZaDeJ+"
					    "DKaL8yrfW3hipSxk3jRwwxAcXhsi68s6LjrWq1zRapWdPUDhyLxtAnPF26PS9XaKl8j1So5x22KgdEjEp4e8sEcz4gVMWxoisE7grHAowUMd6Qv+c+"
					    "mcjFqREJlX9CCooYNkzNYoEALPFrAUID6aJUpuFArEiorbtgwykJlkRZ4tIDBithScaFWJDS8+"
					    "fI0QgDPts1l2DBSfXVRFni0gMGK4JJwMUaRuE35LdJ6+fRCtjEjWTwqYMACjxYwBJQUDSbh4kTTBAx/"
					    "mj3+"
					    "7VepmjJT52kxmjZiaYFHCxhE9sCyQZgm09iZN7hvPhqFTxuK2V1KLlSKhBaJkgwdCNUoW05yaMSSX8bynQTNcYXWjsSIJYfxks4CjxYwNDKArDib4Z"
					    "fXpVwyLsZM7Q419vRQhlzpEMgZypbvkKowYjnARTEeA0wWMARwigZVXGgVKbY2ktaJVvO9UilXixFLCzxawFCqn/TrTcaFamqHJ/"
					    "41LoKITd8kTjYd+mCz3xMfK4HPuTbxhNM6zsMZV/wTC+LEBSjleLSAgQQAx//oDznkOR5Kn5qWkgsqErXyb7j+ewAYOyI7Zd/"
					    "JiFS8owIY10DWjVha4LE4htxK0u+kA/dTuPgnyqXuHHFqR0X4SxuGt9fRNpx8zh1mOsfNXIYNw3pjYSr6VS/"
					    "BmhFLCzxawNATU7HbKVz8GaipO40iqVqAJwinS0UNGyqA7kwvgZmbEFR+US4LRiyL81iJLBXinp4lFRec2o1xHH1oEPIh/"
					    "FKGDYfw1mDEkvgt8GgBw5As50ybzMWiDETOybzX5QxgQOH7ycZA5NgRydlzBpIzgA7JXdWXuGSW8wZxMh1PXl+"
					    "OArnZ4M4ZKM3APwDgPZSHR4Pe4OJ9Vc4VqSpxLQ8slIf/7OBzMAJxw4j/opSjVDXOFakaUS0WKA+tcgtaXPOKBYp0LRE1+K5INUhpoRjbUWeD5oX/"
					    "GI4v1eV/"
					    "FlfTct9sqEZUiwR6wVbJ6AOfSsU4bkdX5VyRqhLX4sDy1MkHKBDXSZzK0ZjOuSgWwtU4KtJ3LVrxqwHvQKtngOshbnVXN5Vrmf+TSIBrpP+0N+"
					    "JLmvvOQG4GeITLwmHnu7bzX/"
					    "JD32wQJtyflYF2PfSpxmlcjChfI8VY8bjsDECB+L6Ia6RFOB+RFiFGb0RpBlyRSkvA618EA6OndhiSzdv+"
					    "rgGjhd5jgScLGCiLqThGjUiozLzt7xowGlGi4rK0IqsUONSKhMr47QUPE273/"
					    "BHmSzTevzXSOcxjdJ5uGLDSn1LhUCsSms8zULFvRC4RfwFAFk7r1oDxpieV/WuBJwsYKIUkOMYo0gUq/"
					    "RaRv9hJYHppVwPG0hyxfgs8WcCQjIsTjVSVo819TVm58lSEkdNPnin7Asw0hLJ1uOfnBE/hZ/uEwAJPFjCQ9JQ4tCOSKMmQgEtP7WrASPvk/"
					    "Ar0Iy7Z/aRMKVQq2GP4Qxw3eSf+scCTBQykMRkOKhKnZvy4KjZtQ7TanapzlstYDCMU5AzN5nqSzrp98mI83dDT/"
					    "LWAgUCGcPCcIHWnsWu3gc9dN9FOxvfdkJLJ72i4oqSzjtGKfXILPFnAwL46FQfXec2OtWpqF0w3YtM3iZNNhyLKZB2j4INP8snZdn2EOD7MGJf9JLT"
					    "gaOuDt+NmkaUFDGx1ShwqRWqpnmIjeUdaGW9qwMjt1tL2yS3wZAEDu2ISHGMUiTtK1m1/"
					    "14CRo88VJRi4ue2TW+DJAgaKIAkOtSJhGCxuszroeNFgDRgBfGcKDMzchJjVPrkFnixgYCdKhUP1HokVtu4cvmXb34RpHaMV++"
					    "QWeLKAIUmfcdvfpNGdM3AHBjCa8d1fY/tbPbW7Qz3+E2dgNQy4Iq1G1N7QnAy4IuVk18teDQOuSKsRtTc0JwNUpO/"
					    "aCsTPWZ+"
					    "X7QwsiQE3ELkkaXpbijHgBiKLUe8VL5IBXyMtUqzeqLkZcEWam3Gvb5EMuCItUqzeqLkZGHvWjof85BNpfshH2wM8e7dzEHPuRvTrc4x9RuzeW5HVV"
					    "ByjRiRUVtyo4KEu4RgPMWQn3YqsUuBQKxIqM2980THaUZJDSKzIKhUOtSKBmCSG9A4RPDHdMU4kcMafW5FVEhxjFIm2BmLGImR9xPTSzjGWloC+"
					    "fiuySoLjRNNuDH9iFGMou1gTGsqTLc0x6qhteVq9kUqylbLPcESSM3bixyQiSnIdS2zjNMo28PPJSY5RR6Ebqex4mtpnspy1O+"
					    "3wmQ2tGiOewGeQzGUrHTdSqeumQ31m9Fm72NpIYIhWu4FIYWS/"
					    "X5pHN1K5K5tk8lBtNuBJJlO62PRN4mTTYRfqTHeO8TDRwhF8LrApt9UaqSRbwkfLBaNCN6pfqxSpLT2JIb0QaYawY9SRyi1fN1J5w1WSPjNGkZIY0t"
					    "PJ+c65HKOOug2yXfWyrtFIJSlI0mfUioRh0A1E9nreXW6N8LgzDQcmbkKszkgl5ZdKHqr3SEGHsWLQL4B0K+"
					    "gYb1FyK8KNVO5SMrnPuIHIXUL9zhlQM4DRzA1EqtnyjM6AggH1GklRlmdxBlbLgCvSakXvDU/JgCtSSja9rNUyQEXiVmiKf8a8WhK94atlgC9zR/"
					    "0z5tUy5Q13BgYY4FGr5p8xj32PNFBm2SRsRfJs1MsWxab1nyL+uiwyr30NDCxGkSAsWjNqhlkKDmE+"
					    "KWishZaO3DkDWRlY0mbDMygPh1pxNBu2QRyPv7hzBrIysCRF4mj0OStbXrgzsIeB0VM7POFNGogEru23NW1bqVj8VKB/"
					    "ynkPFfNGW+"
					    "DRAoZ5Wd9f21QuRo1IqMy8gUhSBZyczj3GxcOI5pwFHi1gsCKYFFyoFQmVmTcQScEA5wYeR81zhM3t2Fng0QIGysqCS8WFWpHQ6CSG9HKSB1KoRC/"
					    "gP8J1zfs2Lme1Y8u2wKMFDGN5y5U/CRdjFIk7YjFjEfKRWLhjlqvRe8ttFYZb3m8RPuOFML+7iWHeW84MCRZ4tIBhBqpVVSTh4kRTFTqlGIIYyn5/"
					    "KDFVGrBw2iYWizh1+4w4bihw/"
					    "Uac9LcOadt3S9vIIIB0EsmnEsuSEU0eDkHO6UHUVZxHQxiKGqmkNFNyoVIk1ClKws62z2k6yb7fHoxHo9nJP+"
					    "Li1O0DfwCfIxCVgFO5PzJujMNvqJT34DfKBp9KRUUcXZay3uI8AqcFDDRSSTlyQ+gdru2OK+KoYI/"
					    "hU665XTIuxkztDjXq9FCGielUog8guFGitqwf4TN+tGuFSIGFIxbfQ1GxqFClXG4eNe3KhgHcngFALUYqyZWKC+"
					    "2INLTOEK2W6ZZGUKPygHyOPByR3oQ/"
					    "RPyUkYNPQq6hQsc66HKNrkV5vGna4JoxuyyBIXy3xwfhjkxxz4dYPw5RWVwyeahGJHRYmdLFOpjEZVlXtPSR8E8BjkmsohwKi7h/"
					    "6xUkIxHXXMldgF84C+uQuJw8HpXGIPXDFxmE0zo+yMgDP0/"
					    "I7gQLKhLuwzolTiUPlSK1pScxpBci1YTRWDaI152mcHvqaLY8AyIl208I8ImpIk9+NNIvwmMPowUMlEFpI5WkJQkXYxQpiSG9nkAP3gad/"
					    "TqWGekyisSS98XxNzvn8lAO5+68ci9yi/DYI8ICBo4+/ZF/biOVpCUJF2pFQkcraSCSdd/q4MDEXbeheS6J2nH4DUc3ClHWA0dtHAl9jnBfuDu/"
					    "n3qD8kvy2MC3gAFAdkZ9YOJDbFYjlSQjFRcnLGyEO0defvfzED43F+j/gPvcnY8dnPVScb7ioqNCvEFcdKRqcsT/"
					    "yAjG7def2yz8ZukJ7rO2I4BThMegfgZLY7BipDIJF6szEAll4Q7gA/"
					    "jsSO6cgTszgD60agORHJG4wHTnDCRjQL1GSlZjwYLwBJH10WVBGF71AhlYlSJBflzM0vmIdMOD/"
					    "03EwNoUiVvezScWifjzYpyBhoGxu3ZV04apHXf4fDSqWoo2wa9tRLIpBUdVPQOuSNWL0BtggQFXJAtScAzVM+"
					    "CKVL0IvQEWGHBFsiAFx1A9A6N37bDzxfNudDxrxzNqPAO3cwCRiSWdY9Sxb4EnCxh0bA3nGjUiodG0Z3AJnwc+f0WYBw8/"
					    "IrwZrma+VMeo49oCTxYw6Ng6nEutSGi0eQORjvGwwJnDAk8WMOjY0uVSKxKK4/"
					    "dAsc8MeG7tAsTwHFtp5xh1ErDAkwUMOrYUucYoEk9Nf4uUKesjppd2jlEnAQs8WcCgY0uR60SRh1MBzWiz/"
					    "eJUU2bqPI5Rx6gFnixgIFstjiSGKrUjkigJz6rtcxpl2/fbFPGOUceiBZ4sYCBbNFTJTTMa1pHdaMZTycRQ5VCfb/"
					    "Lyj1aRtj8YCJwOpFlJcow6SVjgKSsGKMoZqJDv0mh0pb9sYVxsTyDKoFaR+"
					    "pWEhcnTJZuByLCygbBjHCAnSLLAkwUMNAUmVntpN5EmCELHNdz7MGIorFIkVCjDW2z6JnGy6TBUX7Y0x6ij1gJPljAACxWGfXiSoUqVIrUiSmJITyf"
					    "uO+dyjDrqLPBkAQPZ4jb8ZEOVYxSJdt/"
					    "kU20CEHeOwFXwlJH4Er5j1LFugScLGMjWBtdVj7bRhirVigRFKW7YsNfYW7eO8RYl0QgLPFnA0JKzsyQBLm5CjDZUqXqPFEiDo8/"
					    "sBiKD+jVBx6hhqbyBSKK0IKskhipXZyBS18c8lzNwmAGMXqs2EHmYIc/"
					    "hDIxkQL1GGlmuZ3cGVsWAK9KqxO2NzcVAuNnwFXO+fj38n63cZ3fnDKyaAegB/wsKt8qjjorE7b/wHxKHGXe2BsMEDzsDK2Ng51Brv+3/"
					    "B6YuG4JXZLzHAAAAAElFTkSuQmCC",
					"text/latex" : ["$\\displaystyle \\left[\\begin{matrix}u & \\rho & 0 & 0 & 0 & 0\\\\0 & u & 0 & 0 & \\frac{1}{\\rho} & "
							"0\\\\0 & 0 & u & 0 & 0 & 0\\\\0 & 0 & 0 & u & 0 & 0\\\\0 & c^{2} \\rho & 0 & 0 & u & 0\\\\0 & 0 & 0 & "
							"0 & 0 & u\\end{matrix}\\right]$"],
					"text/plain" : [
						"⎡u   ρ    0  0  0  0⎤\n", "⎢                   ⎥\n", "⎢               1   ⎥\n", "⎢0   u    0  0  ─  0⎥\n",
						"⎢               ρ   ⎥\n", "⎢                   ⎥\n", "⎢0   0    u  0  0  0⎥\n", "⎢                   ⎥\n",
						"⎢0   0    0  u  0  0⎥\n", "⎢                   ⎥\n", "⎢    2              ⎥\n", "⎢0  c ⋅ρ  0  0  u  0⎥\n",
						"⎢                   ⎥\n", "⎣0   0    0  0  0  u⎦"
					]
				},
				"execution_count" : 7,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [
				"# compute the A_n matrix from Sutherland and Kennedy (2003)\n",
				"# (this is the primitive variable flux matrix in the normal direction)\n",
				"A_n = simplify(Inverse(P) * Q_n).subs(Derivative(e,rho), de_drho)\n", "A_n"
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 8,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "iVBORw0KGgoAAAANSUhEUgAAAM0AAACWCAYAAAB99QxdAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAR3ElEQVR4Ae1dXY7cNhIeL+"
					    "Y58MbAHmAM7AHG9gkyvoGTAPue5AYx8mS/"
					    "GfENHL8vsIlv4OwJxjsHWMA5wAIxBjnA7n6fmiWwNWyRaomqoroIaEiRGtXHr1jij6jqey9evLg8Ozv7F45UePfy5csvUwWe5wxslQG0+Y+"
					    "o20Wqfii7dx4VvEaaF8fht/jE087AiTDwY6KeT5H3jPmx0byBFZk2EuCTyvwO7A9x/"
					    "GgdM0m2FCxwaB0D8P001BnymNUZzZ+GhVbPAZpDyGvEz3GwV3yO4z3SyW7Uaj00cVngcAsYmjAaEP0tGtt9xO+"
					    "k0SF9izTP30iex4cZsMDhVjA0YTRoClyMuEk0iWvkXUEZ9xNlnrXPgAUON4GhFaO5gv4/"
					    "7beB7kzmYCz3MM6ABQ43geF8nOddaXiSc4j0AMdHnPcTJaS54sZ5Rj902v3XMn+D7NzNPs9dsGY5MLNx8KnKIeQFDvIjBo7TdYMFDreEobSn+"
					    "QGV5uSbwyFZwRLNs8F+LScVYjEINsBDwczwDDyRny8Rf4eDixWccx16D3aoPkvnW+"
					    "BwMxiyRgPFX0KDNBYGrlUPn5jfJPJ47ZqBPaB6AFdcknxGg4nAfECaixjsfSwHCxw2gaFkePYbFC6T8K+g9VcDzQ+NaFA8+"
					    "zQ1l5GbytOL720shLcAwd4lDhyeMWj2hhY43AyGkp6mGxaFpygV389nuqawW72qMp/h/SG3k49kqtFJXm3DDVU9HAEnexLi+XlwlfQw8uAZFNc/"
					    "tcDhljBkjSZSaTc0iyovRWt0qb9CmDyxRS5j6WlYrh265dQEP5zvsbfWNmwLHG4CwxSjYaPde1qiIXAMv8bLxV8g5zGOYXiEjJtEQx1et8Y5exTOX/"
					    "oAXJwP8qBBaQcLHG4CwxSjocH0T3s0CKYvEFd/gkIGh4SfEHd7f9j6kOZQiHMsLkSohoCFfEjPJ/"
					    "jYSLiKtvew0QALDOocbgVDyUJAp2NUmO8auKmTDeE9M5HmMvRagb0KN2g+QcyJP+MvcK7eIIFD5i3k6HucM3BDKZeeLeDrAOGPBQ6bx3Av+"
					    "p7mIRRcvdcQ7W0pBm8coj5GzAbhYYMMQLd8uc9O496U4dkGqVisSuxpLCxGLFYhv9FhBtxoDnNTVIInD+dWnM9cF/"
					    "2DX9Q8A24081Uoq3re08znsok7uNHMVxOXmZ+ix7mdfyu/"
					    "QwsMFK+etVAZDYzBWLyX0SBfSab3NErEu9h2GXCjaVd3jlyJATcaJeJdbLsMuNG0qztHrsSAG40S8S62XQYmrZ5hpUg+debeL3fWN9B7C/"
					    "xYwNg6huKeBhXld+7urG9gKHLaAj8WMG4BQ5HRoKLurE+sIxG3wI8FjFvBUGQ0aCfdV4mJ9sL9Vu6srw1+LOhwExhKjYa7eD8ljEY+JWD5KYcW+"
					    "LGAcRMYznMtHV0qd/HmQv/"
					    "FYu7CqeVBvoqjwhKs2vy0gtECT0thKOlpxCDGNiSWGFaJflPXaDoqTOEZ5mnzM8STOreAcTMYSowmpYRh3oNhxhLneDJc4j7ynYpVR4UlVa3CT4ngC"
					    "ddYwNgEhuzwDKSn5jKiC3l61HLWp+2oUOo5FmvyM4YrLrOAcTMYsj0NnvYyLEsNwSRPFgRiRc1Oi2zE9EJDWas6KiypgGAM+Ib/"
					    "UpWfobBD5xYwbgkDjYZPgL/j+O8h0pGv7eRN01HhCC19kTY/"
					    "PZCRhAWMLWP4N7ilnZzRaDjE+ltII0oGum2Sz3rjCx7hZA1nfReUEwsOvc8ajgpjsYfS2vwcwhXnW8DYMoa/"
					    "gkzaSWc0MbHJNBooh0WazvpoMDScLgAP06s4KgwiRyMD/IziY6EFjFvBULIQIAphr6LirA9kazsqFA7GYjV+xkANyixgbB6DOwsctCo/"
					    "dQZSDODBzRfs7iwwRY7nOQM5BrgQ4MEZcAYmMOBGM4Esv9QZIANuNN4OnIGJDLjRTCTML3cG3Gi8DTgDExmY8p5m4q39cmcgzQCWb7knj79ix1+"
					    "J43ubpgKN5rOAWOKmKuBg22IARsLPPa4CatnQ2kIl/iIgaTR/hBOJpcxjZ2BxBmA03BLF/Yr976cuLqTODf8jt/"
					    "U5jTDhsTNQyMCkOQ2eDqrOArXlF3Jq+jLncKeeOTwU9zQQouosUFu+aUsoBOcc9gYzqy0XGQ3I5ma1+4jfiX6QvkWa59W/"
					    "adGWL3VuOXYOd9pbgocio4E4bSdv2vJbthfB7hzumJjNQ6nRcInwk7AfxeIbQJYQo6JFk9ryF62M0s2cwx3xs3k4zykQ3VnJWjo/"
					    "ma4StOWXVCpg5BD2AY6POOeXrl1A+iMS/IiuH9qGotWigC8nr5oOY8HAcoHz73Cw8fLrWy4u/Y74NeKqYSkeskaDWgiZnMMcCiWGdeh/c/"
					    "na8nP4WE6HhjQMvnt4i6M3GqSJ/"
					    "2scakYTMCA609IhZXcBHHF08jycrh0t0pZKh2e5yvEJqxnU5KMRXKLi16Hy7tBQsxUsIzvblkp6mtRcRuCJ5dZyFkg52vKlrodid2h4iBl7+"
					    "Yu0pazR4El6i4PVTw3BJE8WBBanSVt+rkLEx2sQjzk0rD5eH8NphUPg+"
					    "N8YzsDjvdw1x5YvxQONhg2eE7MxK9R28qYtv0RP7tAwwxIabTWDyIiOi49tS/w/2kn35SZXM/"
					    "iCUoZazB8GbSdv2vKHfKTOyeNNXIBGwt6n+svfWOZIugUOR+AvVnQsD1dA0OmyaCEAyld1Fqgtv1BdNBgaTheAmWl3aBj4sBIt0Zayc5qoso+"
					    "QVnEWGDBoy4+ouJuEMtyh4V1arObMakvuLNCqWh2XKQbwUOydBU7paUxVwsG0zQAaIVdef8DB1xVPcLxC3t6cEHkmQ9GcxiRyB9U6A/9EBf4BQ+Fy/"
					    "CscPG8iuNE0oaZtgYShfI8afYh6Fr724Kcn8t7PdIXdaEyrZ7Pg+L6DS78SHjMBo+leFEum1diNxqpmNoor9CYXqN6HqIr8xkVzQ2sEJZ/"
					    "0hYA8R37FsgzwJWHfq8CIaEDM4zJwE8GNpgk1bQoktxu9g7FwXsPh2EMcj3DexNAMWM9oNJ8xgSDx7sz/"
					    "OgN1GOD8hcvLzQzHAg29s0DOaf4ImRKHU4+cgSoMXOKu3PzYWnBnga1pbAt4w/"
					    "zl15aGYinefU6TYsXzqjAAY+H7GM5pmg6+5Ny0+"
					    "hy8BgNuNBqsu8ymGZg0PEP36r6cR9Stzc8INFNFFniag6G4p4GQWf5v52pNW34Ov3V8OfxrlVvgaS6GIqOBEPflPNKqtPkZgWaqyAJPS2AoMhowP9v"
					    "/7UztacvPwbeOL4d/"
					    "rXILPM3GUGo0V2D1U4JZcd3E8ppBW36ubtbx5fCvVW6Bp9kYznNsoTsr+"
					    "cZhzJNNTsRoubb8UXAotI5P8Aecav6mLfC0FAb2NLLnTGLhWWIxiLENdSWGJfebGmvLz+G1jk/w0980v5K8xiGroFLGOtDfdM1ggac5GBbfe/"
					    "agJtsF99aWn4Ooig/GcgmANBYGy/6mVXna0dP98kNI7kX93rPs8Az/lprLyN3Eck/"
					    "Zl7M2P6KLsdiCv2kLPC2CIbsQgKeUDMtSQzDJkwWBMcUdVaYtPwfaOj7iF4yIx/"
					    "xNV92qLxgAR9pMTK3kVWtHMQ9zMWSNJtTsWP+3MTFz0tryc9it4xP82v6mLfA0G0Op0Rzr/1aUNTfWlp/Dbx2f4L9A4kZOGIfeZy1/"
					    "0xZ4mo2hyGhArPtyjlvaIK3NzwDO2CkNhobTBeBmejV/0xZ4WgJDyUJAoLhzfOC+nIWNu/EjZGnycxfRIAcNxoK/"
					    "aQs8zcLgvpwHDctPnYEUA3jg9L6ci4ZnqZt4njNwqgy40Zyq5r3eRzPgRnM0df6Pp8qAG82pat7rfTQDNBq+hc39UO3RAvwfnYGNMMCXopN+"
					    "qHYj9fZqOANHM8DvcLqXwFPe0xwtbev/iOVI7p3ir3oxXOyis2+QfxvSHm2IATeaZZTJl5pd183bIc0nEh2R0Lm3h40x4AsByyj0WxgKu28J/"
					    "MiL21P4HYuHjTHgRrOMQtnLxD9StMxd/"
					    "S4mGZg0PMOTUz6T5UdnHHpwWFL1G4iYNW35MZY4DVzc0BoHGlH84Vdcppq2yuHapMzhobingRB3FligWfDEIRk/"
					    "9uKmQFNBW4dWyJjLQ5HRQIg7CyzQOHi6wGXsjc39spe2DgvoW+"
					    "WSJXgoMhrUZraDtZmMaMvPwg8Gw633T3Hc8jzkZf93pQvMc9gKD6VGw5WhlFMCmc/EK0c16q4tf7ROwTi4zPwG6UseSD/"
					    "HkeJs9F4VC01zWLHew1vP5uF8eMfhORqAOD0YFsXn4pUmzlskrS0/rgSwcOglnnf44vID8vg1JOd75IlxH1DWv7vpM0MCZVQen/"
					    "68D4d17KXkIYTT5QLuq6pDqUnA0bzDwqzRoMJiEFTuoVCilEP/"
					    "m8vXln8GZbNRv8fBht15bUHMnoWNnsOxPyMuDriexncfcWdUiGlANLhJ9ykWqK9DgUqHheSQCyVvccSrjtQzHRbW9IqzSFsqHZ6hLqPhwWhp/"
					    "cLa8mkw/BnvWKFfIY/5k0JoMM8Qx70Q3/HQiGg8WqEqh6jbJSp2HSrXtMPCkp5mbFwulitDlhoKV5UPZbNHYU/zKq4c8o/tFfiE5XwnDrw/"
					    "Q60eW5XDXdX23lvxgbPHJ86rDE2DbIkW4SHb06BxyLAspVDJq1Zhbflgmwpe5BeJURf2JOTsZxxxkB7mJs5cKm2AwzPBgLh5h4VZowmKm+"
					    "1gbWYDUJEPBbOB85g8DDtQ327ZVxpQdA3H8txBUO3hg/"
					    "urcBjVUZLNOywsNZrZDtaEsSNjFflR475N4Ua59BCp4lQer+f8pQ+4B8f6PGhQNYMKh4kKcSi616OCA/"
					    "Y+HAavEWbzUGQ0qNQpOwtk3e80aHDCFbCxMfJeA8D17LHYYGQeeBbyqMTvkN5rSHv/"
					    "vMAJ7q+qw6gKrCd56AJwMd2Uw8Jiv2dBwWwofOpy4v8Ex6vayoaMLmjKh2zWm+HjLuqGbD8hP9kDhWv2IlzLpykNhBtdmWZgmi9EqxpMJwl/"
					    "IIeGq6bDCAd7FT48umEvcMVLz3JZtfgYHvA/vd+zYqOpVoMTuTFIZ0N5jNjcRs4TUcGsasZGUzQ8myXN/"
					    "1kY4HyGk3EPjTPgRrOCAvGUkvnM9QriXERlBtxoKhMcbv84xN7TrMN3VSluNFXp7W/"
					    "OZebuk4E+"
					    "xxPNMnDeLPKGgGN4xlU272Ua0tkYVO9pxtjxMmcgwYAbTYIUz3IGxhhwoxljx8ucgQQDbjQJUjzLGRhjwI1mjB0vcwYSDExaPcMqkOzB4t4zdxY4IF"
					    "SbnwGc5KkFjBYwJMkpzCzuaVBRfsN+jZjfeL9Gml8fvkf6olDWrMu05efAW8dH/BYwWsCQ02WuvMhoUFF3FjjCpDY/I9D6IgsYLWDoCZmRKDIa3L/"
					    "74jAhh3uprkAG91bVDNryc3Wzjo/4LWC0gCGny2x5qdFwh27qgyv5PJflNYO2/FzdrOMjfgsYLWDI6TJbfp67orAX6b9GzN1varm2/Bxe6/"
					    "iI3wJGCxgiLmY5LCzpacQguH/"
					    "qUKg5PNOWf6jOkm8dH3FawGgBA7mgw0IuZHFqIavBzGcgRjo5GQ0lRjN6g1BY1dFcAQBt+TmI1vERvwWMVTHAWC5RT/"
					    "mm6WiHhdnhGYSk5jIkmUGeHpt1Frir5uhfbX5GwYVCCxgtYIh/"
					    "aOtoh4XZngbWKcOy1BBM8mRBoESBk67Rlp8Dax0f8VvAaAkDsNCxCdvu0KEHV4Jj18Ok707IGk34D21Hc9ry7xA3yLCOj3AtYLSAgVzMclhYajS/"
					    "QJB8skuhEh4hcRM9RSR/"
					    "6Vhbfq4+1vERvwWMFjCQiwscN0xICL1PkcPCIqPBDVUdzWnLF2IPxdbxEbcFjBYwBB3SYGg4XQAuposdFpYsBIRbdz+"
					    "8yl9zfoIMcRb4Bc73LFYurhCzV9OUn6uSdXzEbwGjOga0We6fpJNG9nzisJDL0EXBnQUW0eQXnToDMLDew2bR8OzUCfP6OwMxA240MRuedgYKGHCjK"
					    "SDJL3EGYgbihYCPGLfFZUzzdya5nduDM3AyDKDN89chuKKWDDQavs2PfzQ1vrDam/5YiKedAWMMDDdy7sH7P8g37P1jYSDkAAAAAElFTkSuQmCC",
					"text/latex" : ["$\\displaystyle \\left[\\begin{matrix}v & 0 & \\rho & 0 & 0 & 0\\\\0 & v & 0 & 0 & 0 & 0\\\\0 & 0 & v "
							"& 0 & \\frac{1}{\\rho} & 0\\\\0 & 0 & 0 & v & 0 & 0\\\\0 & 0 & c^{2} \\rho & 0 & v & 0\\\\0 & 0 & 0 & "
							"0 & 0 & v\\end{matrix}\\right]$"],
					"text/plain" : [
						"⎡v  0   ρ    0  0  0⎤\n", "⎢                   ⎥\n", "⎢0  v   0    0  0  0⎥\n", "⎢                   ⎥\n",
						"⎢               1   ⎥\n", "⎢0  0   v    0  ─  0⎥\n", "⎢               ρ   ⎥\n", "⎢                   ⎥\n",
						"⎢0  0   0    v  0  0⎥\n", "⎢                   ⎥\n", "⎢       2           ⎥\n", "⎢0  0  c ⋅ρ  0  v  0⎥\n",
						"⎢                   ⎥\n", "⎣0  0   0    0  0  v⎦"
					]
				},
				"execution_count" : 8,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [ "# compute the A_t1 matrix\n", "A_t1 = simplify(Inverse(P) * Q_t1).subs(Derivative(e,rho), de_drho)\n", "A_t1" ]
		},
		{
			"cell_type" : "code",
			"execution_count" : 9,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "iVBORw0KGgoAAAANSUhEUgAAAOIAAACWCAYAAADDo1QAAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAS1klEQVR4Ae1dXY7VOBa+"
					    "jOoZMYM0711Is4AqWEHDDmiQ5r2bHTTiCd5QswOa95Gmmx3Qs4KiawEj0QsYCVRiATPzfSEnuHIdx849cU5yj6WUHTvX/vwdH//"
					    "FOXXj+fPnZ7vd7ndcMff2xYsX38USPM4ZcAbyGYAefcDTp7FfIO3GSZDwCmE+HLo/whsPOwPOwGQGfor88gHiHjI+VMTX0MzVKh6wS0U/"
					    "ol53cP20ZH2s4aGwt+Cs8ZqLB8/93OcfcYxqFPFP/cQ13qNCnFpfwH+KiyP7U1zvEI5OBeauozU8c9e3Vv7WeNXEs3pFBBk/oCHcgv9WGgTCVwjz/"
					    "rXE1fKt4alV77nLscarNp7VKyIaADeTLiMN4QJx90HYrUjanFHW8MxZ15p5W+NVFc8WFPE+"
					    "WsOnSIuQ9S7TazpreGrWfc6yrPGqiuckh7l2VOEU8DauD7jvFp4I8/XHE/hPmBd8Lj65cXKOMKeIsznknzPa/"
					    "WU2AL2MreHpwRu9BX42Lvb0lNspLq65pUPD7TLOGq9z4MkdEZ+hcG6CcLonu5MilWcIUGjiRIh3JWJGX5QspfA5yqoF0Rqe7HpBvpTrd/"
					    "DZqXKzi+vroffL2fkqPWiNV3U8o4oIoZyBTCogHd979KeB7EXfMZEOz/8Gj2u2xXtS4oHjKG7JWcNDmXEW8xB+M6tpyXoPn5tglO8anDVei/DkTE3/"
					    "gDBkM+QRJPJSpIJ4KilHHCpf6N4jrYYi9juFEIP0WnyvWMtZw5Nb7zd4kKNg6GSWU3NGEZYfhq3xqo4nZ0Rspn1QLPaaFEq3PkSYveVVoKi4bVz/"
					    "hI7Eq/"
					    "oot8GGTGONReJqdAhNvazhySEbmClDcvVL73kZCS978dVvrfE6B55RRQxY57T0MgDBJMZdGw2RzlGypvBYvvTeCHZORsRr+LrU+"
					    "QLW8IzVtNmG78mVv3mMi7Ohah3ZCFBrvKriKVFENva+UGJxjyG8mo3/"
					    "V+CKbQydI77fcYzIWiXZGp6xSnHk43qwc21nyg6VSmrFWeNVFU+JInKUk+neDsKiADnqUBkb18Z1GzcSP6ePMjlV/gSfU+fGIUycXM9+/"
					    "yWm3l9reFI1b3mi/GT2sGvj2Mi4e1pzZpOCSlyblvNJsvZBIojgOyUeDOe29hUuboJ8g+tNEHftHSPSajmOfjzkfQ8+cdH/"
					    "FvdLNSRreEBH1Mk6kLL9sX2CB+b5GmMp7qJA20hrvKrhuRF8j3gH5PennilSPG3lDEDe7FTvwmeDcleZAfDOQzIc3G6UTE0rw/"
					    "TiKjDAEbHmer5CldZZhCviOuV2MGr0wlxHc314cXBmnsHBDLgiHkzhajOQnWYfEQ2I0BXRgBAWgsBXFg8wMnLjzd3CDGTvmi6M04tXZqBVQB8NlXmd"
					    "mp2PiFOZ8985A4oMuCIqkulZOQNTGXBFnMqc/84ZUGTAFVGRTM/"
					    "KGZjKgCviVOb8d86AIgOTdk2x4ybmMniuc3Fjvop8qGW1Jo4c63Sxa3FXPCKi4N8B24wx3+kUzvfLNXHkWKe3A03uihQRBZsy5judwvl+"
					    "uSaOHOv0dqDNXZEiAnbzNXcEPs8rLmHMNwJl8ag1ceRYpzcXVe5KFZGn9T9FsMvnU0w/"
					    "drcmjhzr9Naqyt1JLg4MxTytP+a6L73HHjwkvcXiBo8PINGSPMeqYQ3rHHhKRkRRstQh4RxlHeM9J90NHuewlH7GkjzTSL+a8rDQ9ohVnbsSRRwji+"
					    "m3cx465Bn0Rmf4vXxD5waPDyFz/"
					    "Lezy3McQvYT1rAW4cmemoKO2NpQWJIegu8V53Zu8FiHYSvyzKmNNazqeLJHRIxEMi2ITT8lTjZtcsid9IzggO8Gjycx+"
					    "OVHwiPuRHZhbhI3uzzDQofC1rDOgYeKSO3+B67/"
					    "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"
					    "RkHmi5iUu3q/"
					    "aFa0RV11TB78JBqB8P6Ii74MRkJtOt3DfrXnXWFFXxDVK7bgx86wpdyzF8fjdDorYvCOVyLX5rohrk9gR421HPe7svg9o4OdIb4P7VQan7JqusqIOe"
					    "hMM8DVLN/pBMamUjOPu5aqdK+KqxXd04Hki6C0UkOtETkXv4DrH/aqnpajDzhWRLLhbCwNcD/JVxeqnon3CuUbkrhMXwJ/"
					    "6iX7vDBhj4Ax4eMZzK451oe7tqIicZ7/"
					    "GxSNO7pwBkwy068HftjANDQjm+pa651PTgJSjCqJB870bT6fQsTOm+"
					    "95qQwcuzty4Rtyk8zXiJsWaVSmeF26mRXwaYfbMtFnLDRB3lRng1NTdcTLwA5SPUyNxNMREg0xch7mrzIArYmXCDRXH0TB8MW4I2vFBmTQ1Ra/p//"
					    "tipK1Y5CiEDHyh9TYmUTFDmzbh4x4eYEBLzsUjIgr2/30xIBSJtsiRYIv5wMvpKO3YrP6ESqx+c8VpyrlIEVGw/"
					    "++LEala5CgFGXhPkc4ZziZOqKTqqpmmLeciRURFVO39KxFjDZM1PIM0t0rIr/"
					    "Uf4KKVPm7WUDHdjTOgKudSReQuW+wEjhgiCnfhxqui84Q1TNbwRFluFY6vLF4jfMYLYVrRjsk3mseRR6rK+SSXTAiKL4DHXNXTOdYwWcNDYQFT8/"
					    "8hWsHxcLR8VMu1PmVKv3N4vnu32EUGAaSzAXI0YF4cPTmiSkeMWz2HfInP3P/"
					    "paHGNVbRIF7IVEaVKxhTAkCNxNZ01TGbwoLFQSWiFjYrSHJKGzxGQSsSp6J/hFzn8hkrNr+EbZYVPpaQiF+eVWbDV/"
					    "9OhLufSqekYf7fHHlgg3RqmWniohPxkKPxS4RHiJplIRD7cVX0oStjKke8hqZhUSFWHPM+Q4UWb6Rr/T0eRnEtGxNTaQXqIj6rSGM/"
					    "MGiYTeNCIOfJxRHwZUoj4Q0auN8ir/"
					    "5+YWAbdHDOh8J0mO5CuLq2Sssz+lxicds8yTWYlA6cu5+wRERWUKWmMdImrQULHhzVMhvCw4ap9qYB6ccSjjH/pyP8SkJHwshd/"
					    "8K1wCZ8jMcsODyCwXO7y9sv9cHDBGRkINjwq7T78lcQV6UK2IrYladj7D0FrhK1hWhQPGgkbAq9JU9ABgTRb9UEDlMceI8CRq6jRyY8zfav/"
					    "p0NVzqWKqGrvP1MQY49Zw7QonkBZrmLEIV1GsVjyUBx/c+1cKvLhGo4XlXROx+lvX9FjcY+BicpRy6nKuUgRUVH/"
					    "3xcjYjbCEeW0pyDAxl3P1Ppmr3b4DUdXNnzZB9i1cWyITxDuTw/"
					    "38jgwgvkTQ+NQHjsFYiGmxrVxmjMAyXrQR5mqulBsch8ASAoFyh6XmzP3cC1q8twaJgt4gIEyopN1E+X2M+"
					    "Ipt2yH57lGo9LxO0WG6RjmQYC5lbApDOVw84lO2hyVgJtH7FQY9wHPMK6qQ5nkdLIu4Pedyf1iRaxaUy9scQZaJbgL/"
					    "3xxMBsDECpi0dR0Yzx4dfIY4FSw5torD9XGnnJF3JhANauDHptTL67FLjTz9bz2GXBF3OfEY74ycLcN+"
					    "oj4lZNZQq6Is9C6mUz5yqL5RGozNTJakROjuByWAQYwNeWOpI+"
					    "GFWThI2IFkr0IZ2CMAVfEMYY83RmowIArYgWSvQhnYIwBV8QxhjzdGajAgCtiBZK9CGdgjIFJu6bYTZNzjDxrynOH/D8K/"
					    "RPyY2WrplvDZA1PimzHmmKnTlrxiAih0UbJBXzaQnmFML/"
					    "afofwaR3I+6VYw2QNzz5jX2Mc61culgwVKSKE5gaGR6RlkaMhyI51iJn68UWKCHjNl9oRmDyLeB+"
					    "C5dnE2s4aJmt4UvJwrCl2KqaVKiJP4vMbsL6T9SHTaztrmKzhScnDsabYqZh2kltW5mjXfcWdm+8hz1nDZA1PilvHmmInntZyNovB45IRUZSM5w+"
					    "HXO2pqTVM1vAMyYnxjjXFTjyNBo+5QcmlmLw5kCefIXAqN/CpJ7yXL1iCpP1giSLu/3o/"
					    "psio6v7PZ4mxhskanhTpjrVlBwp4hqB8l6lu8Dh7agoQsbWhCFF6VzcwLIzs+0txtI/"
					    "kS4xFeVrGOqvB4+wRET2CTElj00+"
					    "Jk02bIUJV461hsoYnRbZjTbGznyZ8wacBLbb30FgVN70OMnicrYgtNH6bxnlv30lvv8S3a9YwWcPTl1V471hDNvLCsxg8LlXEX4E1tvg8R/"
					    "yl9Bp59VF7yhoma3hSRDvWFDvxNA5E/ZlfLK7I4HGRIkLRVI2qxutZFmsNkzU8KTYda4qdwbRLpMhSbAcOOS3ljJDK2Lg2rsjgcclmjZTD0Y+HvO/"
					    "BFwPD3+KeAJdy1jBZw5OSi2NNsdNLQzvnGWsaV6bR4ytc1IFvcL0J4ooNHruBYTDozhlYggEobmfpu2hqugRYL9MZOAYGXBGPQcpeR/"
					    "MMuCKaF5EDPAYGws0aLjD7deb/YOenMu6cAWfgAAagR/yvXN3Oaj8rKiLfiTzpJ7T3/fclA495tDPgDIww0D8kfu3x/"
					    "wNHhotWv0LW7AAAAABJRU5ErkJggg==",
					"text/latex" : ["$\\displaystyle \\left[\\begin{matrix}w & 0 & 0 & \\rho & 0 & 0\\\\0 & w & 0 & 0 & 0 & 0\\\\0 & 0 & w "
							"& 0 & 0 & 0\\\\0 & 0 & 0 & w & \\frac{1}{\\rho} & 0\\\\0 & 0 & 0 & c^{2} \\rho & w & 0\\\\0 & 0 & 0 & "
							"0 & 0 & w\\end{matrix}\\right]$"],
					"text/plain" : [
						"⎡w  0  0   ρ    0  0⎤\n", "⎢                   ⎥\n", "⎢0  w  0   0    0  0⎥\n", "⎢                   ⎥\n",
						"⎢0  0  w   0    0  0⎥\n", "⎢                   ⎥\n", "⎢               1   ⎥\n", "⎢0  0  0   w    ─  0⎥\n",
						"⎢               ρ   ⎥\n", "⎢                   ⎥\n", "⎢          2        ⎥\n", "⎢0  0  0  c ⋅ρ  w  0⎥\n",
						"⎢                   ⎥\n", "⎣0  0  0   0    0  w⎦"
					]
				},
				"execution_count" : 9,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [ "# compute the A_t2 matrix\n", "A_t2 = simplify(Inverse(P) * Q_t2).subs(Derivative(e,rho), de_drho)\n", "A_t2" ]
		},
		{
			"cell_type" : "markdown",
			"metadata" : {},
			"source" : [
				"### Characteristic variables\n", "We compute the eigenvalues $\\lambda$ and eigenvectors $S$ of the $A_x$ matrix.\n", "\n",
				"Then we compute the vector $\\mathcal{L} = \\lambda S^{-1} \\frac{dq}{dx}$ and the transverse vectors $\\mathcal{T}_y = "
				"S^{-1} A_y \\frac{dq}{dy}$ and $\\mathcal{T}_z = S^{-1} A_z \\frac{dq}{dz}$."
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 10,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "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"
					    "ZwRknHvWrmQLjQCNk+dA+"
					    "VnWsUPKoYUU80IgEAI89td9JknjvMLFj5ybnJwAHQUhIASmEeBhCdrjhaa10yApRwi4IiDjdIVfxIXANAJVz9biKFIop8vTMKVzIsoHnh9BGp43ber"
					    "d0BOrqLSrjZwAhL6A3iOmz6DXuKejrre45xo3fIgkH3i9j4sHvrmWoZPlpjrwxCoy7SrGCUBCOV1e2lNEkw/8hnauvFQ/"
					    "Vt5TTyVoVzFOgJPtUNcA3mi8d/lKwu6JVWjatYyT28Gp303Nt459W1eyEbSsa+/"
					    "ylcTSE6vQtIsbJ4Zz+gs6FcL+prp3+U4pbkm+J1Z7oF3cOKE8M7ykz6BeuXMMeEk7aFl27/KVxNITq/"
					    "C0axjnHOWaP5c5ZSOW2bt8JXXiidWmadM4P+uRtjgX+NRa0+q03mxLTpeNt7nx3uWbi8Occp5YRaV9cCpN4/"
					    "yrR9niOaBPlsFc36azqamrpdnG0GQ9W83Yu3wlcffEKjDt6n5r1zrULdk2ata1d/"
					    "lKYueJVWjatdac2Q51S7aOCnXtXb6SkHliFZp2FePElCKU0+WlLTG4fLYJYuv/"
					    "peIvKu+JVXTal4uQXlb4GsUjOV1eJt3NP3YKIx8aKkcRBv4wzxDGufINu6v/"
					    "erbDLNr3Xr58+Qhi85D6Qygw7EbNatXpRSGwIQRgg3IqvSF9iBUhkESgypozSUmJQkAILEJAxrkILhUWAu0QkHG2w1qUhMAiBGSci+"
					    "BSYSHQDgEZZzusRUkILEKAximn0osgU2EhUBUBHjmUU+mqEKtyIbAOAR4SkVPpddjpLSHQBgGtOdvgLCpCYDECNc/"
					    "WXuAokpxKL1ZJvRe89QH6PCrKM75yaD1DzdVGTihCTqVnKKBVES99gK4cWq90rF7FOKEQOZVuZXUz6HjqA7Tl0LrXEbHA7Rtc3YbPKdVVMU4Q9XTme"
					    "0rmEvnR5IvGbwkdsQ5PubNp1zJObgenHCzZJ2n2TWEpJbSuJ5p80fgtpU9PubNpFzdODN3mxOsYwE2+wj/"
					    "GwNq8aPJF43etXsbvecpdinZx4wRIZnicX0+FOQY89a53ejT5ovFbSr+echehXcM454BrfmzmlI1YJpp80fgt1SY85T5Jm8b5WS+"
					    "pxbmCp9aaVqf1KHIqbYjUj/"
					    "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",
					"text/latex" : ["$\\displaystyle \\left[\\begin{matrix}0 & - c \\rho & 0 & 0 & 1 & 0\\\\- c^{2} & 0 & 0 & 0 & 1 & "
							"0\\\\0 & 0 & 1 & 0 & 0 & 0\\\\0 & 0 & 0 & 1 & 0 & 0\\\\0 & c \\rho & 0 & 0 & 1 & 0\\\\0 & 0 & 0 & 0 & "
							"0 & 1\\end{matrix}\\right]$"],
					"text/plain" : [
						"⎡ 0   -c⋅ρ  0  0  1  0⎤\n", "⎢                     ⎥\n", "⎢  2                  ⎥\n",
						"⎢-c    0    0  0  1  0⎥\n", "⎢                     ⎥\n", "⎢ 0    0    1  0  0  0⎥\n",
						"⎢                     ⎥\n", "⎢ 0    0    0  1  0  0⎥\n", "⎢                     ⎥\n",
						"⎢ 0   c⋅ρ   0  0  1  0⎥\n", "⎢                     ⎥\n", "⎣ 0    0    0  0  0  1⎦"
					]
				},
				"execution_count" : 10,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [
				"# compute the eigenvector matrix S\n", "c = Symbol('c')\n", "rho = Symbol('rho')\n",
				"lambda_list = [eval for (eval, n, es) in A_n.left_eigenvects()]\n",
				"Sinv_list = [[ev for ev in es] for (v, n, es) in A_n.left_eigenvects()]\n",
				"Sinv = Matrix([Sinv_list[1][0],  Sinv_list[0][2], Sinv_list[0][0], Sinv_list[0][1], Sinv_list[2][0], Sinv_list[0][3]])\n",
				"Sinv"
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 11,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "iVBORw0KGgoAAAANSUhEUgAAARQAAACWCAYAAAAff3ceAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAQ3UlEQVR4Ae1dUZLdthF8Su23Ss5W5QDrG+"
					    "zGJ4hyA9k3kHWDuPIl/"
					    "amsG9g5gSu6gZQTrLU3kA+QqrhUPkG63xISieXycckBZgg2qvgIgiRmugccAiAf59HLly8vD4fDByxj6e2rV6++HduhMjEgBvbHAPzBR6C+GEOOfY/"
					    "OejveIM+D++m3/obyYkAM7J6BH0cY+DvKnrG871B+goeRAxlhS0ViQAzcMgAf8XPOBcpYdMeh5MdpuzADMETy9v+DqK+x/"
					    "FjTqXvLJ70RdKAea5Nw3DL4p7VE6vxlDKABct7qGusfsHC4+QOWd8iPjk+XSbn/LG/"
					    "51CyCDvczNH+PcHzhapMOBQZ8iuX7LzC2let0f4L126Q58p+Q5/"
					    "ZPqazU2ls+cUXQwYJf4RiyuEmHAghPumWIZjtbfHJ2M6LuNcroLImvZPKWT2wRdLDgWDh6LG7VofQgbDL7FFr/PqJ5mhTn/"
					    "pLJWz6xRdDBgmPh6LF41stXyeLuy4lITkIysZv/K8rG7tbHAyx/ujs/h0qcAP2A7cGMNbb/"
					    "jfLnWFOvIqnT4VTdfz51wNL93vKpdwQdlvLXP084+mzc5qv1UED+BRa+58KJyDdckL/"
					    "Ckp503GpU9vefndx3uVyU09E8w7qYM+mgJWcxJedJQRq85RNaBB0sKBaOjMVqDgVyeRHzzdvPE5HY/"
					    "q4rx6psgtxLSOAcBRNfxMmHHCyr0lOiAifS+Yn9pXd7yye+CDpY8LwrHLOGPLgYecf8D5aH3Dm/"
					    "xXnHCxRrPrm4wPIay+eE8q8+b4xkuvM4Rs3T8c6A/S/yHdi+QTknyvL0G8qTw6AjG+iCbcrJy/"
					    "I6LLZzR9avM93x0pCwv88q7y2fOCLoYMGncGQsznUo7J5fZec+ZJMX8Htc0KxndrrHYRxQzrfyOITisGlWwrFH2VjTcdAxfp4/"
					    "QRmdHcveYymaqAcWyqC8PKWyNDmb71+97S2fACLosJpI4RilsPiQB42HFwkXDnkiJPZe2Fv51FPm+"
					    "Nowym56ZSWzdFx0YnlKPZTSjs1bPnFH0CHnf8m2cPRYq+FQ0oWb1j3xx7sVeww1Ey/k3HFw/"
					    "uR4EcOpfN85wZI68WnSX0cEsBfIIdsoVyPHLy3ylk+9I+iwlL/+ecLRY6O4Q+lkcXhxZ14DFw6f8EyNQ3uqmmUHwwnowMlaXtzJyXxd+oJG/"
					    "eTjd6yPPSMiQ/4JVhwaPud2yeQtn9gi6GDBsXAMWZw1hzI85eFbIP0FFv7xjQ4kfSKBF9BrlJW+G+cK8z8z/+p04eQnHQx7BtTvH1j/gqVGSjK/"
					    "gTDqwfXfoENybKV18JZPfBF0sOBZODoWH/U+sMQ78+DubcF0iTqgJ+/"
					    "sD5qULaGH6hQDYuDY2+Q7XPz8yaNaQx5r3tmrqd2zscag+"
					    "sRAcwxUGfJYswZPeJxAta5X9YkBMbCOga32UNah1tliQAwUYUAOpQitqlQM7JMBOZR92l2oxUARBuRQitCqSsXAPhmQQ9mn3YVaDBRhQA6lCK2qVAz"
					    "skwE5lH3aXajFQBEG5FCK0KpKxcA+GQj5YhteXEufheR/XKoHwNpLU4jAcwQdLOwtHLcshuuhwDAfoJpbACyLxrWFOiLwHEEHC1sJxxcWQzkUGIZ/"
					    "MnILgPWFlrZzEXiOoIOFlYVjyGIohwLV+M2Usb/"
					    "vX6P8KYzHTx4orWcgAs8RdFjPZDtt1sQe0RwKv9429sGl9FkF7ldaz0AEniPosJ5JBSwbcHg22HLcmNn7SN9cddR0negOp1uwsQg8R9BhnRVvzxaOu"
					    "yxG6qEkZzH1nZMWhjzewcYi8BxBh7tXw8NLhCPjLJJDyVQb3TwfLd1IIe5ol1CV80FMkYONReA5gg63llr3uyscdCiPO77Seh19y88emztJtaU7Ad9"
					    "L2XJi+I4UOZEfpGYAtH7ivELpb9pG4DmCDn3el+aF45a5vyQCw/"
					    "RQcKGloc7YsCaVpcnZpP+m1gkj1nQcxFQ92FjSoZOf81eF5wg65MCXbAvHXdboUP7oitP67lH1SloJmnSKMT6i8ww2FoHnCDqcstOc/"
					    "cJxOPw3ERWmh9Ip1ErQpMTvfesL7LjJdtYMNhaB5wg6ZCZYtCkcPdpCORR0IV0DYPV4KZ0dDN2Am5O11YKNReA5gg4WRhaOIYth3kPpqXWFPINufYO"
					    "1RwCsnirFshGCjUXgOYIOFkYWjo7FTQb6smgBqkMMiAEbBnDz33ygLxsmVIsYEAOmDISaQzFFpsrEgBiozoAcSnXKJVAMtMuAHEq7thUyMVCdATmU6"
					    "pRLoBholwE5lHZtK2RioDoDdCh8yeoFlqk/OlVXTALFgBjYDAP8+wF9yIEO5QIL//Wa/tGLrJIYEANiYDYD/LPr8Z/"
					    "zGvLM5kwHigExcIoBOZRTDGm/"
					    "GBADsxmI+F+"
					    "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"
					    "B76kKd5iQcO+"
					    "YwiOcZzufwiUOm2QnHH2VjTcfBNu4S9Ix6YKHe6TpjPqVUNuvaizbkMQk2lJgIvPbG6S2fpnHTARcPLxIuVYY2BHsisQfjHfTMxB7RHIpJsKETxouw"
					    "2xunt3zawE0H3pG7RpDWgzaB/"
					    "ewx1EwceqWhT5JbO+iZiT1CORQYUoG+"
					    "dhLoK4Ct2dbuzG1ALz5CnppTSBe85XownIAOnKytGvTMyh5nlqwY1XWFehToy4jMiWoi8OymAy6gF3QeXMARHx0zcRj0GmWjPZfjEWV+"
					    "ogQ9W20PBfoq00BU644YgANaNCnbCkXAr0BfrRhTOEIwwB5N7V5NCOC5EhGHPLmO2hYDoRnAHZpPSJTAQKhJWVlEDIiBbTMgh7Jt+"
					    "0l7MRCKATmUUOaQMmJg2wzIoWzbftJeDIRiQA4llDmkjBjYNgNyKNu2n7QXA6EYkEMJZQ4pIwa2zYAcyrbtJ+"
					    "3FQCgGQr7YhheFFOirQjOJwHMEHSyobgXHWi7C9VBgGAX6WmvVGedH4DmCDjOoOnlIKzhOAp1xQCiHAsMo0JcCffH7rvw84ybSXtrsXGOEcihQ2iTY"
					    "0Fzwjsd54/SWT+oj6GDRBFrBYcFFuP/y8EtZYx+3SR+g4f4WkjdOb/m0YQQdLNpSKzgsuDicmdRiUAm6jvy4zamUvn5/"
					    "6riw+"
					    "71xesunYSLoYNFAGsNhEmws0pAnOYup70rMcToWbaVkHd44veWT2wg6WNi4FRxmwcYiOZQ5Bj6fc1ADx3jj9JZPE0bQwaIphcaBXtYlQF53QFcHG4v"
					    "kUMbmTpJB051Agb4SI8vXEXiOoMNyBr+c2QIOhu9IkRMZqyh/"
					    "wsY5ol++"
					    "QJ7OhXEoAJWGOmPDmlSWJmenUQXe643TWz5NE0EHiybSAo6EAWs6Dl5nq4KNhXEonYFNgg1ZNJbCdXjj9JZPeiPoYGHmVnDw8ffqYGPRHIpJsCGLVl"
					    "K4Dm+c3vJJbwQdLMzcCo4LkHGTEfLgYGOhHAq6XQr0pUBfHMc/"
					    "zxp22M2G2uxgOgG4OFn74GBjYd5D6bWYK+"
					    "QV6KtHSKFsBJ4j6GBBbws4TIKNKdCXRXNSHWJgxwygN6NAXzu2v6CLgWIMhJpDKYZSFYsBMVCFATmUKjRLiBjYBwNyKPuws1CKgSoMyKFUoVlCxMA+"
					    "GOg/Nv6I2doc9VuU8Q06JTEgBsTAAf7gI2i4uI8KOhS+0PLingMGL7vcc4yKxYAY2A8D6QPyo4j/D04MQISuHGg1AAAAAElFTkSuQmCC",
					"text/latex" :
					    ["$\\displaystyle \\left[\\begin{matrix}- c + u & 0 & 0 & 0 & 0 & 0\\\\0 & u & 0 & 0 & 0 & 0\\\\0 & 0 & u & 0 & 0 "
					     "& 0\\\\0 & 0 & 0 & u & 0 & 0\\\\0 & 0 & 0 & 0 & c + u & 0\\\\0 & 0 & 0 & 0 & 0 & u\\end{matrix}\\right]$"],
					"text/plain" : [
						"⎡-c + u  0  0  0    0    0⎤\n", "⎢                         ⎥\n", "⎢  0     u  0  0    0    0⎥\n",
						"⎢                         ⎥\n", "⎢  0     0  u  0    0    0⎥\n", "⎢                         ⎥\n",
						"⎢  0     0  0  u    0    0⎥\n", "⎢                         ⎥\n", "⎢  0     0  0  0  c + u  0⎥\n",
						"⎢                         ⎥\n", "⎣  0     0  0  0    0    u⎦"
					]
				},
				"execution_count" : 11,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [
				"# compute eigenvalue matrix \\lambda\n",
				"lambda_waves = diag(lambda_list[1], lambda_list[0], lambda_list[0], lambda_list[0], lambda_list[2], lambda_list[0])\n",
				"lambda_waves"
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 12,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "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"
					    "w5f0j6VWdtzdJhzwCMFA5YZ8Oyn/"
					    "0nEio4xJKFL94jgHJv4Efvt+MLS38f5wYAEAz35qfQYw0n2AeGcr8AxhkjBgFkGevJTFy0Gs54QwIKBThmIwNCpYUOtYKCEAfGuBJpbrpZqKyF3/"
					    "FuPegMzB9L4bL/4bWHrfFnHR98rwSjaYgBQ3h92s1Qbya2RPOkNrHz2hI/Gc4LPt9g48CuarPNlHR+NVYpRLDAAqKul2mpdCd70Bl6+p/"
					    "IRNk46+64WD3Prsc6XdXzkuQZGscAAvJzVmJ6KJP6UXuDgGspwRmSPaa16n2pL63xZx0feizFKBoZrAH414S3pLcks7zGtVe9TbWmdL+"
					    "v4yHsxRpHAMLM1cP9UT7L6u7Xqfao9rPNlHR95r4VRJDAAb7roj81c7LErsVa9T40N1vmyjo+"
					    "8V8HIwMCmPAeappr5yBZLD8Qk2RK0Vr1PtYJ1vqzjI++HMPJZpO2TzgwMF9h4aypFGhxWT8eCTpL7srpU/"
					    "QrXqvepzFvnyzo+8l6CkWMTjAXblai4b5rQ70ldiKnuQspLg5BNsUhWvla9T+XYOl/W8ZH3WhilxhiI+dRls/"
					    "hbz2mtep9qM+t8WcdH3osxSgYGTq3dvrx1z2Ou8P12FOn2it1/XavepxrOOl/W8ZH3YoxigQEXvqul2k716v3fOdc7DVKlcaB99ap/"
					    "t86XdXw0SA2M59Ute7xCtg48LdV2XJv5pa70hmPxH4eJg1FMfHaCY0A/DE63zWz4YZ0v6/"
					    "homiKMZzc3N5eohA83PRyMz0ojBQPBwMoYwPXP55meYX8m1pVYGcehbjDgmoEIDK7NF+"
					    "CDgTYMRGBow2vUGgy4ZiACg2vzBfhgoA0DDAzvDVWnfRtJUWswEAxYZ8DlgjPWSQ18wYB3BnwtOOOd7cAfDHhjIMYYvFks8AYDAgxEYBAgOUQEA94Y"
					    "iMDgzWKBNxgQYED6WYkNplvGgjOYfg7b8pkRs++gsGAnYOB0fT63Ib7gTe7as8BPS4yiLQaQGQvOPH36NQz6BBsfSLrIGVejXNNOkK2+4E2Oc01+"
					    "cthSeSlGscAAoLHgzGA1cME3Wj3Htn2NVjKmhb22ncgNNrUFb3I20OYnh4/lNTCKBQbgLV4EYw4pBs/"
					    "xprc3vNIm98BPMUbJwMBn+6deVJn62enZf2lDt5bnTW9veFvbb79+D/wUYxQJDGjapBe+7pM8/"
					    "i72lqCx0JbH3vT2hrel7abq9sBPLYwigQEkp4uefetDaU7wOPRbq/ne9PaGV9ruHvipgpGBgU35WHBG2sV+k/"
					    "fgt0MXR97wSpPqgZ9DGPl26VhwRsBjpsZUktgU2S0ttOMNb+JSau+BnxKMHJuIBWdaexP6e6nrNNVNSnlp8LU1nGz93vBmFap8ggd+"
					    "amGUGmOgiYoXwahsZ6nqvOntDa+UHZMcD/"
					    "wUY5QMDMWLYCTLONt709sbXml38MBPMUaxwIAmTiw4M7gwuGA34lNsj6W9OifPmJ3SIFkaj8nBb15ujJ9JfWtgPJ+suV3mFaqOBWc2mw/"
					    "Bw0cw4G07qotqVrUTeOE/HhMHw5ikF7x5K/Xwpyo/"
					    "h2HdKSnCGAvO3OEyvgQD62UAATkWnFmv+UPzYCDPgNgYQx5KnBEMBANWGIjAYMUSgSMYMMRABAZDxggowYAVBhgY3hvApL0VbIEjGAgGZBmIBWdk+"
					    "Q5pwYALBnYLzkjPY9jglkia3PM5jnmvNVIw4I6B3v1YNDCAzEt4QJq0kh4icucUAXjdDKzBj6UDA2f63YLYT9btWqG9Zwbgv937cdyV8OyhgT0YaMS"
					    "AaIuhkQ4uqsW/jKuFdrTxast34VQZkCUcRoshQ26NYhjI1UI72ni15dewuXYdpRxGYGhsQRjI1UI72ni15Td2B5Hqa3AYgaG9qYoX/"
					    "2gP8Y4Ebbza8u+Q4fRLMYcRGNpbnrdnX02ISe96TLdvJ05RydLGqy1fhfTKQos5PK8M6Gh1aOJc4AS+nprAL/"
					    "CdA3IvsedCr90l6DVnroaltxOp4vXCF3Ca9eNaHEoHBv5LcqXntaR00b8+ovCci/"
					    "HIz6sWaePVlj+LTFx8lv24CofRlZjlCk1PetC09vqVa+PVll+fUfkasxyKtRgQZd/"
					    "k9Mc5Z7lznJVPjS0kFVJkjwVnEiPTYzGp1ARfDvy4is9JBobeLvrksAf3cKLX2Fg+1V1IeWkQ8mA9UgXaeLXlz+EZGE37cS0OoysxxxvKzile/KNM/"
					    "OJfa+PVlr+YMIM/KOZQrMVA8hDN+C/5xUAkR3aZHjPKvT3s8pOvQk/"
					    "ToccKXuELHyizprs2Xm35YxtNHjvw42IOpVsMXFPiybBxEgb7Q5wu3G2Crq4W2tHGqy1/piOa9uMaHIq2GED6ZwDNxUPY1GHiPynzLrHdbnP6/"
					    "GDrwNNCO9p4teXnvNCDHxdxKB0YOLnppxzrvZUj6LG7QN1dJG282vJnGMm8H5dyKBoYAJbN6nEiwb8gv+"
					    "fWwljfOO6AgTX4sfQYw84tQO4lvvBNTmzyRAoGXDLQqx+rBAaQyTsSHF+"
					    "4wrG1UXmXDhqg5Rno2Y9FuxI03UAm70x8PPrOfDMTfeRdLCR6Y6B3PxYNDAOZz+"
					    "AEDAzsSjBxnGFND1ZtlY4PvwyswY9FAwNcgXMW7g37nWeAaDcj9jvQcbBmBrr3Y9HAgADw/pq9KXTvg4E1+LHK4GMf7hFaBAP9MhCBoV/"
					    "bhmbBwMkMRGA4mbr4YTDQLwOiYwykEf2z9KQhX1DyEBufIej+VqU3vbXxasunrx5L1vEl7MDJu3982nLRnCHRFgNAcjT3Bfa8XckXwPI25Q84vsC+"
					    "2+"
					    "RNb2282vJzjugA3z1g5MOKnBrwLbbF15dYYABIVwuv5Jxjbrk3vbXxasvP2dU6PuIHRr457BE2TgP4LqfTVLlYYIDw4kUwphRwkOdNb2282vJzLmUd"
					    "Xw7/rHLJwHANRFMvqkzjCyzvMXnTWxuvtvycD1rHl8M/q1wkMKBJw9mOuZTeApw7z025N7218WrLzzmWdXw5/EvKRQIDAKWL/"
					    "tiTlHOCxxLdLJzrTW9tvNrycz5jHV8O/+xyqcAwB9CDOSd1eI43vbXxasvPuaB1fDn823KpwDA1tpAApijMeQ29JW96a+PVlp/"
					    "zP+v4cvhnl4sEBvTNUhdiqruQ8tIg5Gzw1k/0prc2Xm35OX+yji+Hf0m5SGAYABUvgrFEMUPnetNbG6+2/"
					    "JzrWMeXwz+rXDIwcFrmBxOorpBnceGVCagnZXnTWxuvtvycka3jy+GfVS4WGNAMc7Xwyiz2ZpzkTW9tvNrycya1jm8CfxoMTWN5E6e8m3X+"
					    "blbTHLYOPC28UosMb3pr49WWn7O7dXwbBDC2bJg4IYuJz05wHI/"
					    "PJu0v47A9YfxxdnNzc4kMPtz0cPjhuDyOg4FgYCUM4Prn80zPsD8T60qshNtQMxjogoEIDF2YMZQIBuoyEIGhLp9RWzDQBQPjwcef0bfYV+"
					    "o58viYaaRgIBjoiAFc1z9DnYtDKjEwcKTy0LoO3c1GPERE5AcDK2MgvWJxUu3/AySyMXnbmOhyAAAAAElFTkSuQmCC",
					"text/latex" :
					    ["$\\displaystyle \\left[\\begin{matrix}\\frac{1}{2 c^{2}} & - \\frac{1}{c^{2}} & 0 & 0 & \\frac{1}{2 c^{2}} & "
					     "0\\\\- \\frac{1}{2 c \\rho} & 0 & 0 & 0 & \\frac{1}{2 c \\rho} & 0\\\\0 & 0 & 1 & 0 & 0 & 0\\\\0 & 0 & 0 & 1 & 0 "
					     "& 0\\\\\\frac{1}{2} & 0 & 0 & 0 & \\frac{1}{2} & 0\\\\0 & 0 & 0 & 0 & 0 & 1\\end{matrix}\\right]$"],
					"text/plain" : [
						"⎡ 1     -1          1      ⎤\n", "⎢────   ───  0  0  ────   0⎥\n", "⎢   2     2           2    ⎥\n",
						"⎢2⋅c     c         2⋅c     ⎥\n", "⎢                          ⎥\n", "⎢ -1                 1     ⎥\n",
						"⎢─────   0   0  0  ─────  0⎥\n", "⎢2⋅c⋅ρ             2⋅c⋅ρ   ⎥\n", "⎢                          ⎥\n",
						"⎢  0     0   1  0    0    0⎥\n", "⎢                          ⎥\n", "⎢  0     0   0  1    0    0⎥\n",
						"⎢                          ⎥\n", "⎢ 1/2    0   0  0   1/2   0⎥\n", "⎢                          ⎥\n",
						"⎣  0     0   0  0    0    1⎦"
					]
				},
				"execution_count" : 12,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [ "# compute S\n", "S = Sinv.inv()\n", "S" ]
		},
		{
			"cell_type" : "code",
			"execution_count" : 13,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "iVBORw0KGgoAAAANSUhEUgAAAOQAAACWCAYAAADOvSRHAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4Ae2dXdLdNNLHD6lcU0yo4p7MDjJhBQ"
					    "M7GMgKCDvIVK7gLjWzA8gKwrADhhXwsQNm7qfqDU+xgbz/n45ayD6yLduyj58n3VU+kvXRav3VrS/"
					    "bOu98+eWXj06n08+6SvTdV1999WkpwsMcAUdgPgKyp1+V62Epp+LeuZdF/FP+L3rX11l8x6vMRaadRAe/"
					    "aVGHFjwODpOLNxOBCZ34h9j17ew7K+K+eeR+LUb/ye4HvUr3TJGkrUo/yOj6EQ9Vl7/"
					    "pojOaTXcIh9l19wyjCAzqlXTmm35OhRH0N35yg+R+kpSZjO/"
					    "LXaTEkwXsmEB1+LeuR7qe6roAakwUpW+KA3KovJe6mHl8q3t6UacJBKZwUzyDxye6Po6s/i33Jvrfk/tA10+6/"
					    "q60Fh6jlznis1iv3snWkH8Wo9ERT/FU4Ae5f1km6jFzqT6sof8qt6pBtsRBvN9Ilk/"
					    "lpmnMMVE7llRTuMX4X+Re6K7CvldtHuv6UP4qHaipvXhV6ZXSPRU/ZqidNWRNGcx/"
					    "B9eVNQwOmoY6Ubda2gQHNUjei9fK8tanm8JN8cw+oFdn5+KX9mewwTBa0ly9OuWbOjWCfKbKzZra1TC9dppYJ+"
					    "pGo9TQVjgwtfqP5GjWS9dU5g6kmcJtqqOzDcr3W2KxQK/"
					    "qDVLMWTONTmlbVuYKvKjbZ1PlbowDisMax2keAlO4YbAntd0vA2xDvOKGRtCBbFXBVXplnO6bp8JF6EllUaWZzv1f5EdP/"
					    "9MIEDFZG0fl2LTjz+L4s+47o7nu/"
					    "6Xwz+"
					    "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"
					    "A8uIQS6l/"
					    "DldSbkBqlbhaYy+QQe5YkP9oJuScoY0hZ90GJPyMzphIB1ZFF49Kmb8UWqmJ7lBEU1dc2NH1m+"
					    "JENGDYyiBlDf5Y1DouBTeNxLy5TxPShPqIrd0WFMw/"
					    "Miz5JB39oHJJUZRDjOEPElQSsX360gaOqzOaJ9nlL8W21628AzyNMG7n8fuW2BS1FsrYK6LQf4eM5lbxUMAhJ5BLg2DAiYlVRgGQFg+"
					    "hdPtIMErNGY/RSyHU+OWEp3F7FPVBwoLvPI4yUc9qW+aMiksGJdcU1ozzjyr+UnTNzz4cb2yRNG9KJ9wlWN424ylly3cMnWrbY9S/"
					    "hSm8koGhxyUwWyg1GGk/AOei7qJzwW2hbzg1+/MCsmKQS0wMb1dY5j/M+num2eFS6/X3yGlojTQUqBWiPNH1tigNGoylj9i5/"
					    "lGeKFI1LWk7CVsUsGRZ8eYYyQKz5oz4RfTDtXFDCQZdkz/XHyYOpOPDaaOgSvNM4VBTKcZoWi34Fdcf/"
					    "qsqG1opG5j2J6U71GUqIT9hbCxnNaYgC10c3bW/d5blz3kRqGS4kR+TMMCSALhaQQiRhUdGt8qVkywJFDlGkjmdtgo3kawTvjETV9R01pZ/"
					    "NjEAg+ji9HPIqI7pHBsiNmmD/gx6lgdzM1ZkZ63VYJsct/"
					    "TPTvGrDXhQ1ugvElxFY4xsq5mNKOXJy3+"
					    "x7pM0eXdleZgi2DWfpMdruq2FSZgB60ZIc8c9NvCIDsgquI0Jo1qRjp0UngSQh6mWuTZglDIi7WL5GREqAZR6TEEFDoZnMIYUajvT7ogdmzNKEjHNa"
					    "YsqeMic0Yoj41m+c4pdSFPIpUHf96fzTdzqNuaA5PTSJsK2tAj2Wdhm4nCqH9S/"
					    "tTRZHF971aY0MbMZqjDamoxZUUROImbCvNMDoWsOSlcyRJhvGyWcDWpmHEWv/CoIcpnO58o/"
					    "IsFZWHY1JXRZerUcRqKqfyYsiAHu7Z9AlMem3ysKxma/HldwNqml/"
					    "0yGHnzToiRpJNGvMIIrHCI+DDtVbh1pCFix59qbCUjmzHgG0Zy3dMp8XhpbO26FSboegdb3S+m1QYpEDCgvPFNmFKYxXVc8bBNF0bJZpWzQsQ/"
					    "KbWFLXHn1JU6qQx71FEsTmk6o50lUvigYilutC6Kx8i58pkL5aCwhJ/k0maB5Eep6eHTyG7+mGQXJ8pU0pmLMKW1NXOVbEq/"
					    "JSboLB1EE7rXhEsbJt+KTVFB27B/"
					    "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"
					    "1GWtuuaMVlu/"
					    "ik23Q5AMyMturhmpH5gMShuRT1k3AjayZfq35IBkNmQwaJ5Zfhh5WFjnT1wVBzENbnVGqx+YHCC9zo8b5Ia4x1EyNxQrrRQW4pQnPPy3hNEdS8+"
					    "IypVPdZlihjNayR/lwIufEa9zRqvCUt6YtlReKSzw9J92CPiUtR2WV+EUDYjRNFA0OKa1TJdtA8nPaD3Dc/"
					    "hfHyEP30RVAjJ6+RmtVVAdO5Eb5LHbp0o6jYqMhmnXtZRJafKp8GjaUn4P2wcBn7Lug7OX4ghUIeAGWQWTJ3IE9kHADXIfnL0UR6AKAQySLW/"
					    "WF6+rcngiR8ARaI0Aa/qwxscgH+rioTNvhDg5Ao7A/gjwmAobXH6mjnbtMORbTS3q0ILHrQbRhb9AYI1OMELOJhX4TJl44+O2Ew/MqcsiukM4LKq/"
					    "ZxpEYLFezX4OKSXkBen35XIUxa0m1YEXsh/p4guG/BvEyXopfVMckEOFvtTFzMMPT55sgXOCKdwUT4fLq4RMCyHWa/"
					    "ZmE68cslTjZX9erLBw3S4n8VmsV+98+eWXKAKf7vAWf3qnsSSO4qnAD3L/Uoq/rWGqD/X/q9yqBtkSB/F+I1k+lZt/"
					    "gXFbod1N7incYvwvci90V2F8PcMXLR/"
					    "KX6UDNRUTryq9UjoON+PTuXfmTln5zCcsPmsEWppGgn0chVzKYm4+6kTdamkTHKh3FOBOvkmzVbtO4aZ4W169Gmhg2p/"
					    "BBsNoSXP1avamzmeq3Kyp3cLaAQ7XLhTrRN1qy9wKB6ZW/a/"
					    "1d8Fgp0K2atcp3KY6OpYJ0Ptnp83vAr2qN0gxZ800OqVtU42rcaFu4euIMQk2xgHFuZOj4ximDeKmcMNgT2o7+8i6X2SIV+DQCNpPP+e+Sq+"
					    "M4X3zVLgIPaksqjTTOT6shW50cTraEBAhUasflUMPzLRjyUG/1I06Ts0AmuAgWemVwYoGAy/"
					    "KZ2r1QleglfUxNqtdyYHC80UJ7YncbIBcpXOuwU3y9WnQYMUPzImnTlvoaa1eBZnnGCSL3sH1YwSKxTEVCxsScklPQ1oPJO+mxEG/"
					    "lM9ozo5lMi6FYaicYTP0oS2HQ9EwU7QaB8lAOZzXysnjQbHlgh2Ud3pr6nPmtvJXctFpcJRleJNELrKzWfGnlaxnZ49l1+"
					    "CWeCuPrR8N3xCncDoW6oSubLmJVqtXQa45BsnoM/"
					    "Z6HRX+ThXNdweZAqYeP5S40U8Efs1Bv9TN1hJjUq7CQXKSH6XqjzIYJruAjEKnBvWBDXwwKLb+Mf5ZI4DSo6x0Ysw4jHhEgIGy8ZZ3Hha/"
					    "iauyqnArFG6d7EfiARZGGAqnKnBkSZFi+kXYZQxr9SpkmWOQD5QjKEtWWPBKcEZClLljfAof7UVjPgMsZ0tZJ8WHXjmPkB+"
					    "lLY1ybIaYwpU6AsrpyNfji0HQ6FO0FgcbcdLoHQtEvrwzW1sfqwdt8yzDxsJrXGYZfYW1TmsQK5VFma3a1eSsxc3SmxtmZwM6Y2mG3DXYGc9avQrp7"
					    "1uulS4GwMPQosEO8Vb6ksGdFE7PzNsO1S8fKG0oWy6KgLIkhVcYSkTYWI8+aGjKV0s1OIQ0OUPJh2zImKZVDepjRYDlWL0tXcfNcPy2E/"
					    "GHoVnn14se7EhP4jm7XTPmVbhl6c2LPgzKaokG3EXY9XjN0qs5BsnQi+J0SCATxpWUqZNg/xtGz/"
					    "6jA4BFIcYahjpQxylajMMIVigb8pUMZ1Z9YhnPxa7FgclpCp2B8kR+8A1r3yx8M2+sU0nHxnA7Kd+jKFQJ1wt5YzktsMt51+"
					    "pVyHMvzznhpwFsupKSqhI38cbcFIdH8fRQexIy9g0v7YxKnqe6AKlP9GQ1StYCh345yBdklmylw5Or6hPrxYZLiwOTaTfWi4nEHwXnKi0ZUroNPXNw"
					    "QwzTvcnBojF2OQS1ehXyzDFIlOKjvKTMz/TwopFUSeb9r7N0e3g7jRaV6LEKNqUeOuiXV6oszZici3GQLHRa9NapY1MYozdKbsr/"
					    "icLyOuT+k+JIO1Qf8F59YLLKoMNCRpQpUAxjM4r/"
					    "qazBKeZc76i8JbhRMKP5SflrRsgm2FFej2r1KmSbM2V9pRw0yAWpwjQSf39GpZgqQTTqC4UB5p7EJgSHEyMLz/"
					    "dQaEBBvmdyqUeJ6E2La9pe4rU40HFVH56stHPqwxQu7xipU0cZhUFaWysu1VnhuZERDrETDGYQO608HsjThYidfqpxk4xsxtCh0HmddM8IyY7q2J5E"
					    "K+woMqeEcR445L8/"
					    "FNEPV2VYT5x08XXERaMoDMW5OkkOOoBcKU2mUliIU54wYsntKK9lzF2lWYXDXPlq0ysdHSBXPqIyFUYRCT9FXnjxo6xDByaHKbTSwGtMiWG1C0XZS2"
					    "14Eaa0NR1rklvpW2KX863WK8t0zzyVLqPOrMpW8u0nu1EA115EZ0LdamkvHGrlOUWFTZjpHoOjd6aTofcnTe2ByZaPbC1p73atkr0xdnmZc/"
					    "XqNOvzK0qS8Az/TFHznjgX4lb5VQ96MTZBGBWq6Yg4SCYMiRGDjZ3XuqgbL0yn/wNRGqZzLCuY5VBnpvXQN4pjxHxP/t90bfn2CuUdilpgl1dI/"
					    "Kr1SmnT51f3cyaVfhqcteQsBa7kfY1kKOiSUf9wOKhhGQ1Hp91Kk9e1lJYNI6gUd465g7+NsMuRWaRXc6esJwnOtIMR0hb7uRC3yh/"
					    "rsGi0v0s49BqN3V52etP0txfvtxMIrNGr2VPWCVk82hFwBGYiIANOU9bZI+TMsjy5I+AIzEDADXIGWJ7UEdgaATfIrRF2/"
					    "o7ADATcIGeA5Ukdga0RcIPcGmHn7wjMQGDJc8gZ7D3pGALaXeNtmpe6Huryw5HHwHpL4twgr9jQMkjeluFoDQ5HnvxE6IqietE7IeBT1p2AHipGxsj"
					    "rbtBb9WbMucr+20fADbKPyP73vILYP+Fgfym8xEMg4AZ5/"
					    "WZghPTR8frtcAgJfA25YzNoesrmDZ9u8aUMX1lgiGzsvNB1QUpPWvsagw+E+WC4+Tum4skXHksPmL6Q2wOWI+Aj5HLsZuWU0jMS8lkURsXFh7/"
					    "2DebFCKl4NnlekS6m5QsbSy9vU+JAZuShzE4ZCrcDppt3BE1rcEeY+Qi5Q0NKqRmBMCgMMf+OFP/"
					    "FyW5Kw0j6sdz8ZAY+di0eoaLwQEqPMfEVTvWhyMrDCP1jYHD+pI7vKHNijZvLkce5vzECbpCNAR1gh6Fw2nd+ng1JGTXzw5EJS6T0jFgYIQdX1Xx/"
					    "yjd4cw9FbnUgc5LbPcsR8Cnrcuzm5OQIjc60VAbGqMlIePH8UXGMnEwhMdjwhb/"
					    "COlNJhZeIE+w65ZQS5WHiG6aicikLmVKnoTDkI2wWT6V3WoiAj5ALgavNJqVGobn6hmfn3BSVXfmYojLFxVDwM/"
					    "J1TvGLvJ8rbu2hyGIRjv7oP37BwE8qx6esALED+Qi5A3SoUk8AAAGcSURBVMixiHztSFBam0nh0+HI8nNcpR2leZK/"
					    "OF1VOEbOJlGLQ5GRh9Gwb3jIGDoMlfc0lklap40QcIPcCFhjKyW+kR+lRuEDKYyRh82U0uHINk09J9ZvTB8OoUqB593Q1YciZ/"
					    "w6HYbKRD7O1zEjHTpgOmPh3rUI+JR1LYJ1+TkQq/"
					    "Zw5M+"
					    "Vlh1WHjcwCkKcBpcfTkUYU174GmHInemv8qT1oOKIDzwUbkZmeXGZFiMja1WefWKgNQdMK5lTKwTcIFshOcJHSs4omRuPpb4Ii8ZSMhjLc1IaDJUrH"
					    "9WYXi45FDnwnSNjyOA/myDgU9ZNYN2WaTQejDyQ7ple2ghpm0W1hyJHLu4cAQEfIY/QCstkYHRlF5aNndf4dT3RxaHIGCvTXL6xfCZ/"
					    "2OGNft2GtLhOB0PADfJgDVIrjoyL9WJnzdjPqzT5unM0bT+v318HAZ+"
					    "yXgd3L9URKCLgBlmExQMdgesgkE9ZWXv0pfhOYRc7gf1Efu8IOAJ1CMieeOnj4VBqDJKt83ytkafNt9XzcPc7Ao7AMgRG30n+"
					    "f8YkUUIP0BVjAAAAAElFTkSuQmCC",
					"text/latex" : ["$\\displaystyle \\left[\\begin{matrix}\\left(c - u\\right) \\left(c du_{dx} \\rho - "
							"dP_{dx}\\right)\\\\u \\left(- c^{2} drho_{dx} + dP_{dx}\\right)\\\\dv_{dx} u\\\\dw_{dx} u\\\\\\left(c "
							"+ u\\right) \\left(c du_{dx} \\rho + dP_{dx}\\right)\\\\ds_{dx} u\\end{matrix}\\right]$"],
					"text/plain" : [
						"⎡(c - u)⋅(c⋅du_dx⋅ρ - dP_dx)⎤\n", "⎢                           ⎥\n", "⎢   ⎛   2                ⎞  ⎥\n",
						"⎢ u⋅⎝- c ⋅drho_dx + dP_dx⎠  ⎥\n", "⎢                           ⎥\n", "⎢          dv_dx⋅u          ⎥\n",
						"⎢                           ⎥\n", "⎢          dw_dx⋅u          ⎥\n", "⎢                           ⎥\n",
						"⎢(c + u)⋅(c⋅du_dx⋅ρ + dP_dx)⎥\n", "⎢                           ⎥\n", "⎣          ds_dx⋅u          ⎦"
					]
				},
				"execution_count" : 13,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [
				"# compute the \\mathcal{L} vector\n", "\n", "#drho_dx = Symbol(r'\\frac{d\\rho}{dx}')\n",
				"#du_dx = Symbol(r'\\frac{du}{dx}')\n", "#dv_dx = Symbol(r'\\frac{dv}{dx}')\n", "#dw_dx = Symbol(r'\\frac{dw}{dx}')\n",
				"#dp_dx = Symbol(r'\\frac{dP}{dx}')\n", "#ds_dx = Symbol(r'\\frac{ds}{dx}')\n", "\n", "drho_dx = Symbol('drho_dx')\n",
				"du_dx = Symbol('du_dx')\n", "dv_dx = Symbol('dv_dx')\n", "dw_dx = Symbol('dw_dx')\n", "dp_dx = Symbol('dP_dx')\n",
				"ds_dx = Symbol('ds_dx')\n", "\n", "dQ_dx_def = Matrix([drho_dx, du_dx, dv_dx, dw_dx, dp_dx, ds_dx])\n",
				"L = simplify(lambda_waves * Sinv * dQ_dx_def)\n", "L"
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 14,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "iVBORw0KGgoAAAANSUhEUgAAAQQAAACaCAYAAABPEzaNAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4Ae2dXbIcOdGGexznmjCeCO6BHfCNd2"
					    "B2AMwKPOzAhO+4c8AOGK/Aw+wAWAGGHQD3RIzjBBuY7310lDUqtUr1p+qq7s6MqFaVflOvlKmUVF367Pvvvz+1oN///vfPlc/bmNfPovta/"
					    "o8t8vc8HAFHYHsEHhoW8QcJ/28tP93/Sff/0PVz83PXEXAEjo3As4bsfSUl8CrJ7w+6/5n8fpH4+a0j4AgcGIGHKLCM5CX6VuG/LgUU/"
					    "LAOPhb8R70iD+8VkanGN3ruLI3RxB6hiIBjWoSlmecYvgp/o8J+qcsGyb/q3qbPTK9f6EJefqe45q/HbUll/"
					    "Usl2JS+V5jCPkunDH9UKJFT+nf6ULtXZl9n4Qj1v+X/z8z/7DHG+T+5LGj85SyCe8xGwDGdDdmsBGP4Khx5+mPs0/+Ui3Lokfzo6/"
					    "+R+1Ndl1IKWO45wduv8EwVwp/E1GQFkOeYPisfpgkU8H+pf+1eaVJNWovqYRMRcEyfgIo4MH3NB62JSJajjeGrcJsufyjncGKdjX7/"
					    "lS4UyOZUwkB+lBsUQss1hFAZZY45ghZixJ+j9dBSWBRz0oQy/"
					    "WcQAcf0CZrncrha0xi+Y4Ocme6ft2ZsaX4PSxOW0kVlwJwIoE7xGXeK5QF4zLOc2iHgmLbDspTTGL4mB0PT5hCujIcsiFKZm/rNVggSbkb/"
					    "7yJXjOYf5cccCW2HCYRCMFOJdYTf6epRjEs+KAryQhGQ5p2uQIqDRseUQnv+S8+"
					    "duad71joo51u5m5Hyp8FZVKWe1I8ypyg3RW1LKreIu5WicLPMpmDKVvA/lKbDlHz0/Gc5m787onIGcVXY7u0OFjmJr1F88zR6HlQYyo/"
					    "+Tjh9akhhFLIc9mqB3cNw9v2QCAiLIJ0gyg8FgMCg6dipoDF7OxaK09sx0DMg0PGYUgThkmsLiamF8Fb+lMXc5r2utPO+0POXujZTCCoXAXwuN/"
					    "AvF76p2491XYxULh2xhvsp8rYKU+WB8v2V3Km7SoswUP5juO7a7qVKzcC3S640Niha3w5h8qc96VP061/"
					    "ruWUfXo3dZIUg5qkY25BpBX4jvzCqy39UUBQHhUHHzUdaFANWBiPxSS5g/"
					    "p17EcomH5Vfy+8lgVuQyqexEI70paqP8kNBvNKVKq4tWEjzHMN9Kaaf0kJ0D85NRqos3+5xDFdFhKfd2r1jNLkRz5PwTZLYLQMI9FJ5oASNsG7/"
					    "Ir8zy9kiLHGVXxOZmaQQVBiWAJotCL8xLP9RJWBxo2ujQzraEwR4qaJJtys7pRPzwMkVRBIUFArlsA+MFbKkk79X2rzBqD9EBzkjlYP/"
					    "33QVw88SPHkwQgzyp7ApuLfClDbotW+JZ/"
					    "G0BtsxXMP0M5a7pN3BywQxZR+L8iTeGZlzYiCqWUVT8c3zRcFSZi3vPE14VpolGK+SGWNkkkJQZBrnr2L00RIudEM+"
					    "aVrliQAhbIyEgawcuYzUhJ8pEIXVtmnoGG8UZ1DYQkGFH6WhQ1HmN1mwdbRinkoHNpO3WbO8hx6n4D4XU6tfh6l4B3/"
					    "qPMXyWYTtFFwjhie5i9pd6UoCb/mx7VjrM9U2SAOVD1j1+mwaHu/BudhXCnFzr9kYiyf6n9UV/rr2jZm/mlL/"
					    "ZzHyoBMrTwGdwA5GrgRU8qFDU5FSZwzTBYWFyibZj23T0KFK+SVZDN6i0bvpSxKLNQu0cNU6SeKvulU5YF7FvRKnhin1y7d3weuk/"
					    "KZ04KXYzsF1abtTjWa0EF9wtPWDpX1wKcbUfRV2D2PoqXKPuoiWC2VIqjA0z5yK5wJFBUJHVD4AgTBaHLRwr5PGOGjQjuSH4LzVxfyMe4T3g65ACkd"
					    "b00jM5zoTTvd/"
					    "Tp+fYgeTs1cfxSEtV2sLIBZ57qjMUdyVinUNyPB6ekrWA5TPKKZKRBuEOis+"
					    "i4u8Ph7aW24rbGmDqbhOanfldymagy88UVdo0iDaEGPKXIXdM3KYQJgfnSBZfFWEuc4ne665sYPRIWA4kPzorAiadexfyi8FH2WQxuce06+"
					    "Lo3s6LKv/vGkJn5RBntbBCf+FwjAXWSjk+SSXONZweOFHGGW84BmKfiyE/lb3PeUUImz7U8Vd/"
					    "Dyq+LmYdtjBuvIAhy90Wd1+HvMlDDxWYxvzmYPraLuLr80p4jAXX/hiQAK/0Ae5H6KIzWqMk/xXYfeQZDR4K6YRBv7ejAJgFIboLO/"
					    "kR6ecSiiV90rzRi5mP6M4oxN545eP/OxGIOgIZNC2us/"
					    "ngfDE+kbe0a2DI9xfKxzlk5rKKANTRLoNZAqCcuEHYqehuvgXYm3wIx6m4D4LU7HJYiltAG7f6QI3LB9rA9rEqBW2s3AVb1Pa3Xjc2p2Mr/im/"
					    "6L4ULInPdNn2VHI+yzBRq0wDvmprFXYTVIIlERBVoOlrvJAeZxZGgN+"
					    "oRilKS4UJTwwX07zpPN1mlnpg6KQi9ZOdzJe6jk36cL0JaapNaKSXobESxV3hc/"
					    "CdGb8VtjOxlV8jrX7RRpgDl4LeW6FcYfHQj5C+mddLld4o4pjpXCl1gGdD63MOwOEGaG1UwXQUxwxUsnP0t+"
					    "V2xjbvXFFaXIdihpj3KRu164Qeg0tgBF663xo3pw+4aF4xEFh2LQCP5QH5p69GKPb+yXh0QTbI+"
					    "AqHphS5ttwuzduK4xbVuShZWY75cV0gXkTCzMIPCY20wP+/"
					    "5COCvgzJyceaTploHuIhTWom248Pd71bwtsHdd6F2qBcb2EGaFXrxAk4AhwVYgVh9Gf7cywhiCXRugtYOqZBUZ2OVIlIq/"
					    "7JWHRAlvHtdKFGmFcKWFe0NUrhInVfa94TAX4gg3ThRdyeyaknlEEVcWicKdzBKrYOq7ngC3wqWK8IL/"
					    "BJPeiEMJ2kDrnGyHxudyLvWA0iPztBDi227flxTC+C4UgBeAj/0ad1rHdCNgk20tifJMKQQDy+i0vIV1EEagc1ijexjZkpwLa/"
					    "EMjT8X47zUhoL7Ci3aHeMeihNtVbzuWKiSweSORvz1fRBlEHnjLj50OLhYs2e1gN8PJEcgRoK+k78Pk4bs+"
					    "35RCENBhpJZ7aQ38lcpksdKI11H9kBpDw90OAfUTXqLjT3WsZx2ObkohCF3+"
					    "88ACzKUJBcT2mpMjMIqAlAE7XLwTwwB2KLqZNQSBy9z9C7m8unxRig2clomCYA0jf/kpjdPdKx5vWLK1RB1mnVyltHQqFCEvAH3Sc/"
					    "rZN3ndL43hqnBGafqLWXdMMx8jYuD6QheKnqmg+"
					    "cfg1Q4DF23OFPMwdDMKQYjyJmLv3YI9UI6dMKxjTC1faVAcrHvMPrkqdlReqGLNwq2UBPQxXBXOH9j2Ol2Jvsp6Aq/"
					    "Qt1Y2CQrzbm9pysDOwq6LNWpYRnjWDxDuWY2s+OkoNa8Vn2Lnf95akseuacBAF+3YjMZwVTi4QR+enLNfRnKshdZ80T8YCEr/"
					    "uZH3PnQTFkLSqLuNkOIBZYBpGaYs8fkkN/"
					    "0nZq2VSZd+r6EWtxemMtYqk15+Oz4geFwtaQzXMexoV4jvd7Qm+itTht0tW6vYTSgEVYZGXSRMBsQaNwo/IwkKwUYc1hGYxkwl6rB0q3Ss00/"
					    "l4RbjjeFqCnxovSeEC5ghC2INZnxsyC2EHEEJkZlkaOElpzS9VDpMsE1JfDId+C4WQnn22XDm79Sh9+6B4he3P+VvUwusB/"
					    "JDEaBI3ukKpDg8869NPv/GGkGwQPRMuT2M9Bw6veKwdvFCFwuLpGclu2ihyD+tC/jxwsxShaTk+5P4H8W1wOWgwlB+YEg4in5IYRSynOxFnuG7Hcp/"
					    "8/47hauHKZEuEOetAAF0OjQrr6kJRQdHML7VNUQI46ehwLX+4ouOxvoEPAY+5GIRYO4hrJPPp1BcOhi7AqwzBGGVa2sfqUB+KX/"
					    "K42MvlPUoN3xSTfcIc8BIftSdjguxSGV5Ugbx4LEjhVtdyCuUF/"
					    "1QMnxPsahAugwOeiO+p+La1UBpDDfDP4TJH4xQ5vRHPp9X63shzcIf67OUt4XCmc3W7gohNsrfI+"
					    "fB9M1q8VrPjGA1Qmls2ZHpMIOnVtUYS8NUV4QXQUXQU3657z79rjA6iH27krrxkpNtJ5JHqjARBIhXpdM88SNuTtSlZw2QLqYdnOYoHOXCNh2K7BCd"
					    "1yomfibhavET17Dja9zUzwjsUcSDU74Yfy0ej7FA2vgQtLtCEArpfj3zqc5sjgjlnbwEHB3CtG0vPHaWv8mzJBy9uMlD91FVpWd0RkB7fMl/"
					    "slWQ5Eunw0RMBZpgOmY6CsHrNwSIGMUQ1EBK291HL5QoyiQXUtKleZ4UJ9RFbul7kUHxxDxLDmkXHX6TZxb5MGFMg4NgKDyvI3GoY8/"
					    "aSRJOxTVJEm7D+kAl3zx++twCj2KfTQu59P3uCkGNEbSkXMwzBOFMWBRW6sApVuQROlPqyX3Mf83fnVFSLU6tgp2QFzdG4o86o3A6s1V+"
					    "QbjlmtCYcrBkqZsrk5PSkR/XhzSi7s/KJzzGhw+z1PDOifZJpzR5+ORnlVcSePigjCUnLJ3VS3md4VpgEOxyRVqIVvRqgYf12cMoBhTCj2J1zS3W/"
					    "gKeYbqghkS4U9piuyfNf/"
					    "A+"
					    "dio6Viesg5FHAip50ZlPCi8JGyPi4O5JzLOnTCIbCBxrDl1nj3GH6mIC2lkUMf5b5YP5TDrWcToFo3CE6Re6MLe7kVv3pcNvFG0binyW6lXD9aR08A"
					    "6VcH8KSX5jOa3xgG/"
					    "o8cnZ7fcnVvIzuzmAS8fuOjD8qBHQwphmY8S0wsAdizs5XOVbQ5nbS6twhGIu5VOgYPKTCfXVBQ5G5N8JqXkm7lCn5yUaW3T8ijx1WR3MTbIJL93wx"
					    "l7gTe5zBbJjwloD+SA0CFAQnhg+"
					    "6fAbpbkUzcEVnqztRpX9hngczkJAIfwvtpi58fHiDsqgEwY1Avd05LyhS4xh6n5RCmjgh0B0I6DlJ76Yt36y5zFX8RFEBCqtIwoPQfuoC2LHwoQy1F"
					    "9+tQ6LMimNcAi0jebpzgF1CfNmuYFUHvnz/"
					    "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"
					    "L4GuEO6lpVfWMwo+"
					    "wt0JfswSJXFSeEmAh7YiWWjsKOb9Vh7Ff5AqHAuEaciUcyQnldkV7jc9BHxRsQeHP0xAIDf3EcAwPZDg5mdTYjnY1CFkTRzdhJex8NAzSmbwH6QxnH"
					    "cxsGjIn/gnuSgIFEVOo2XmCfz5BwRcIfyAhd9VEJAAPioYKwCBCyQ/hBvB/Pjk88PZlPEZZZDG5z4/r5N1ido/"
					    "SFnz4NVuykpffEIZWLm67WhKmV1kv+kj4FOGPh7+VEeABcepZ1OeJMTsRvBiFTsTYaqh+"
					    "3ztgilHupCJoHfTD8UPFolctinThUt2KfLpy0nxppSppE4lBFwhlFDZyE+dFXOXuTIv89Ch+"
					    "WR8z6SW32FJvGIlpMJrvJb8QpjSFBc3CVQYeHCl0xCmIKvOkayVqbydKgj4lKECzgZBHDX3QR2WUZKtOJ4vTQg11+"
					    "4kHHq86NnWBbAQwmJlxuQnnhUPK2LtOZJZ1v4IAm4hXKgfqBO/UVEf5ZpFwKhIp+a6mICqrM4cv1DVx4rBusDMZ2ERgef/"
					    "HUwPNj1HUvk7FRBwhVAAZSMvTOfUfP6Cci6pDDaq16pso4KqKinFea5C7uIcyVVgNkjsU4YGII5lETs0K+zpqjgjY7pINpbNPYe/"
					    "V+"
					    "XZZTgJS6YLfEgmf9mJYKeVCLiFsBLAicnpxHTmMDWQi3LA797PQwSWKcR7C2xXMu36XK7jNgW1BXFQCMxlMWXDgs2CPDzJOAKsnPMXZjo0SoHvHvDH"
					    "nYutHai8qyXhVJ1SXG3FjsM4+"
					    "IbpLAqB0QoNjKd3UIGwAbFewBajTxE2ANezXI0A1io6wA9qWQ3ltAzYTvNRbhpWHmtHBHxRcWPwZRVggfFqrltfG2Pt2a9HgCmD04YISBGwRsMagpM"
					    "jcHgE3EI4fBM5g47A5RBwhXA5rL0kR+DwCPiU4fBNVGZQUxEWKnlhhzUKPz6tDJP7zkTAFcJMwI4SXQqB/0TwLgPfejz7G/"
					    "BR+HQ+rgsBnzJcV3v1uJUyYP8Y8i3NJxz8dyUCrhBWArhzcnYv0q8I7cyOF3/tCLhCuO4WxEJw6+C62/BQ3LOG8KPIkbmHYtCZeUJA0wMWD/"
					    "n+IO818MUlFAELi+90BVKc57oZOj6NuJxGHd5Zl8u/B8mv6X8qRnjY5Ag31cFpHQI/"
					    "seRYCP+LD+ZamLsHQUBChiXAB0T4kAgXX1xCmKHUQqgdZcan21AqRrw5yXP4LoN5NnBrPLxQ/"
					    "lsc4daA7bvO4r9WexSC04ERiCPukuPT8n+volS63QjliyJhpwKLo0iK8wdd3+vCuhilGG/sCLfB8kYL8AibI+AKYXOIVxeAJTB0fFpqHbC4aP+m/"
					    "I3S8O+1QFFQmU6k8Qnjk241AQ15KA6KYwrlPHzIElGWKYwsyB+"
					    "PgIArhCO0Qp0HhLsnyBJQhBtzPx3xmQKcFMbaAOHpF4WwDh4Lgs2cvkbk1Su7Fln513gg6SvFMaVVy8rDdkKARUWngyIg4UGwuTrBj6yiJE4KLwkrW"
					    "5HdScwxPn69uErLNKA38sfyWGtAUVAu8/"
					    "1ulFc4ioV0Y0eqDW2H9o5wUz5OB0PALYSDNcgAO7lZH4SeuBLS0vFpeXysidzvS6XtlITuUQAsXHKwCtYFYQh/"
					    "iBPDpx6pRnm5ssHa6KYxunc6IAKuEA7YKMaShPBR9wgkAhZIfggWgvrxyad4fBrCHUjxGdVf6ErzwC+3OliraHWkGsogLY/7/"
					    "Ag3eTkdDQGfMhytRc754evMS45PYzRGofDOwk9jHubHmQfpGoOCw8Eo6QlMKI3UgggWhtIxjUjXAV7quadcFIet0bEj3JTM6WgIuEI4Wotk/"
					    "EiwEOpUUC1GyS+EKU14+cgiRrcWH4uCK51WMC1ZfKTaAA+RFXeOisCzozLmfF0Ogah0UDyB9MyUxCyEsIAZg8z5xI3iEYct0d56gUVy9/"
					    "oQcAvh+tpsK46xIDD1WVhE4H+ni+"
					    "mBH6kmEO6FXCHcS0uP1FOKgPWCbs2gFF1xmFb4kWolcG7EjykD80bmnMEMvJF6eTW2QeC9smWX4yTlwHTBj1QDjOsnBoKw7oRCYEuI1We2ppwcgRoC"
					    "YZdCyuCNIv1Srh+pVkPresJQ7rTtyacM19Nou3MqBVCdUuzOoDOwGgHfZVgNoWfgCNwOAs0sBI0eLDi9jdAwDYFey7/"
					    "bznry8l9HwBE4KgLNFIIqyH/nuxdidM+chC0sTjp2cgQcgStAoOWU4SspARYnjHg3nvfXecnFyRFwBK4AgZYWAtaB/"
					    "eFmVtWj0mBLi6mGHzoyC71yZMe0jEsr3zF8FR52YlSeDZIsyNr0mek1u3rICy+Dmb8e96VmCkGVyv8sg4LgCzqjr7XGOH7oSMO+4Jg2BLOQ1Ri+"
					    "Cue7l3+Uy0E6vMzFf0N6JD/+FPYfuT/VdQil0HLK0FVWlWOawAssk/eplSbVpF1e135DvXTxJeSL061iOhfIrdpgDF+F23S5+8hMxjvrbFgLu/"
					    "SPjJfw2FwhCATMftYP5n7ee+grOyW+r8mPBufag24V07lYbtUGY/iODXLICnSYL0k1mzJQq6gMmBMF8yg+45/+rZaoJQI8f/"
					    "GlhMxyP8d0OXZTUo7ha3IwNG0O4SpoyIKYwkPTOLMVgoSb0Z+PbkCPuvhyL3MktB0mEArBTCXWEfjXXI9iXPJBUZAXioA073QFUhy0+"
					    "tChIxc58EM80OD8C5B6Uj/qNkW5KWpbUrlF3K0UhZtlNgVTtoL/oTS9dR8987n3zd8dUTmDuCps93Y3TFNXfI3im8aP94MKQ/"
					    "nR3wmnTw0pjEKWw14tsHsYzr4fEgFhEYQKhC/myEUBIDBoOt45oDFxO1IclEJHegYEOh5TiiBccskXSi0EDvygLNYi2IFIO+8LPedf7pFXO1K5CCD/"
					    "9Q/8y4Vv6vbjdqWM56Ry6Yg13E+Rt1WYKg+UL99nHPyQyji34zGU/xiuu7Z7qQYz8O2SK40Nita3Q5j8aU/"
					    "6FP3613pOvz4V4qz4WY3dZIUgJqnYt1kF+HhGGNXlPyooioPCoOPmIy2KoftSsOIB5t91QSibfFR+Lb+"
					    "XBJZI6el0bPugdGZrX6WhsRCO9KUqtohQECwSpopL3pvSGO5LMf2UcQ3Oo1ip7ouxVdoqriofnha3e1afJo/"
					    "ieRK+hcIYQCC+UA1mRli3fInqzHK2CDH+rP6rNKtkxsqepBBUGJYAmi0IvyWW/6gSsLjRtdEhHe0JArxUU6bblZ3SiXng5AoiCQq38PtG/"
					    "I128DxhfH4vN28w6g/"
					    "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"
					    "bKmZ/"
					    "iMlr3zHeLbK7ioCi40mkIU5Clh9yclGeucKw4d68EgWdXwqez2RgBCS8KhiuQnpl+"
					    "mIUQFitjkDmfuFE84pQOubF47l4xAm4hXHHjNWAd6wJTf9UhNw348CwOgkCqENinztn6Vn5nJmkeyZ+"
					    "vEwG1LesF3ZpBqRaKw7Ri7JCbUlL3OyACak92n7rF35xFFAJzyKG5Xzq/zNP6830g8F7V5NVk/g/xSm7pkJv7QOI2all9Oe2z77/"
					    "nQztOjkAZgagEGFGwFDjkhhecnG4Ugf8HQyG8B0WFfIkAAAAASUVORK5CYII=",
					"text/latex" : ["$\\displaystyle \\left[\\begin{matrix}c^{2} dv_{dy} \\rho - c du_{dy} \\rho v + dP_{dy} v\\\\v "
							"\\left(- c^{2} drho_{dy} + dP_{dy}\\right)\\\\\\frac{dP_{dy}}{\\rho} + dv_{dy} v\\\\dw_{dy} "
							"v\\\\c^{2} dv_{dy} \\rho + c du_{dy} \\rho v + dP_{dy} v\\\\ds_{dy} v\\end{matrix}\\right]$"],
					"text/plain" : [
						"⎡ 2                                ⎤\n", "⎢c ⋅dv_dy⋅ρ - c⋅du_dy⋅ρ⋅v + dP_dy⋅v⎥\n",
						"⎢                                  ⎥\n", "⎢       ⎛   2                ⎞     ⎥\n",
						"⎢     v⋅⎝- c ⋅drho_dy + dP_dy⎠     ⎥\n", "⎢                                  ⎥\n",
						"⎢         dP_dy                    ⎥\n", "⎢         ───── + dv_dy⋅v          ⎥\n",
						"⎢           ρ                      ⎥\n", "⎢                                  ⎥\n",
						"⎢             dw_dy⋅v              ⎥\n", "⎢                                  ⎥\n",
						"⎢ 2                                ⎥\n", "⎢c ⋅dv_dy⋅ρ + c⋅du_dy⋅ρ⋅v + dP_dy⋅v⎥\n",
						"⎢                                  ⎥\n", "⎣             ds_dy⋅v              ⎦"
					]
				},
				"execution_count" : 14,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [
				"# compute the y-transverse terms\n", "\n", "#drho_dy = Symbol(r'\\frac{d\\rho}{dy}')\n",
				"#du_dy = Symbol(r'\\frac{du}{dy}')\n", "#dv_dy = Symbol(r'\\frac{dv}{dy}')\n", "#dw_dy = Symbol(r'\\frac{dw}{dy}')\n",
				"#dp_dy = Symbol(r'\\frac{dP}{dy}')\n", "#ds_dy = Symbol(r'\\frac{ds}{dy}')\n", "\n", "drho_dy = Symbol('drho_dy')\n",
				"du_dy = Symbol('du_dy')\n", "dv_dy = Symbol('dv_dy')\n", "dw_dy = Symbol('dw_dy')\n", "dp_dy = Symbol('dP_dy')\n",
				"ds_dy = Symbol('ds_dy')\n", "\n", "dq_dy_def = Matrix([drho_dy, du_dy, dv_dy, dw_dy, dp_dy, ds_dy])\n",
				"T_1 = simplify(Sinv * A_t1 * dq_dy_def)\n", "T_1"
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 15,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "iVBORw0KGgoAAAANSUhEUgAAAREAAACYCAYAAADDXN0qAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4Ae2dXa7kttGGew7mOpicD/"
					    "C97R0k4xVksgMnswI7O5jgXNl3g2QH8axgHO/AyQpiZwdJ7gPkYJAN+HsfHpZCsSmJUlPdUncVQFHiT7H4kiwVKUp69tNPPx1a0Ndff/"
					    "1CfB4ir0+i/4XCP7Tg7zwcAUdgmwg8byjWH6Qwfmf8dP4nnf8o96mFue8IOALXh8Czr7766heqFoO9RN9JGfymFJGHKR0mza/l/4U4+Vgj/5D7pc7/"
					    "TpiTI+AI7A8BjV/Gsc0uehVQ3LPUEvmjYkmc0j/Ti4lzrJAfJtIUoyUIiuydHIJ+q+vOoilm8MDZCDjGsyE7KcMU3op/"
					    "owJ+LfcqFsTN16b+LA3cyzGefq+0Fq7Li9AfCqUi++eEp5bIpxJ2jtIo8P1fkHhR8Ofyq6czSos18xv53/2Pk5+1RMAxbonmNK8pvGP83+X/"
					    "MuemsO8V9lLuY51fWpH0xJM8XyrgT/Kf3fViGl2IMZYFWuoImKEilCfVyEPJPPwEBBzjYfDARo6B0Yym8FY84wR6/"
					    "+QdHVlXxCppKtdRKScGNFciAoYpCVYIayFztCfm0T9n5jmx+jeX3TEebnIGK64lTeE9deNkLEH/"
					    "9+Rt85iuiZwsYVQgzOEA7xCv8WumSQAaFmVPFsQZDCHgGA8hs074FN42ToYePIR4iTZkqawj9Uyus5WIFAJWxn9iOVgaPyiMOR1aE/"
					    "MLJWJmGgukv5frUUwLH5QLvFAe5HkrF0hpuCtgxqGF/6Hrb0KEDjon7e/khwVY+Uydllg/xrLKVzl0Cp5WUW/"
					    "qS11rFKSStiWVW2wHK0XxZhHWYMy61Y/K02EMH13/"
					    "Wd7qe31UziCuittcPwCbnCTnJN55Hl0PKhnxo48TTx8bUjIFlsNBa2H5fLjIfkwEiYUeKhUWPuWjNBhUaEweE9PgvcfFStN70qJrgKFzMt0JA1A+"
					    "fKHUEnlQOGWhIHhyk3bwB11TlpENahahUh4Wf7IvORi0L+Sb4qIe1PXnJzOfwUDl01nH2uGgNCdjLB4ocBbGqx7xz6hCL6n4T+"
					    "G6qX7QEz5ezMC7y648dqO1vh/iFE770sfo960fMqyCZbUSUYWoLPtG0icnv1XYW7mDwicHk9Iw8FEg+R0cZYI1gzKAFwD/"
					    "jXMRCuoxnP3vwCAJ5RKk9H+RQ1uvYhWINw2aP2ni8RtK5RXl6/xcNNUOrTAG9yZ3wCFgpnBVPtp9M/2gVA/"
					    "VoQrvQl76MPSZeKBIjdhm8b3Cjix4S7DEF7/"
					    "VxlSVEpEAWBxoyG7gUhGFTyoO0iVkd53UqiAaQFPlxAKrdeBOUZFQ4YBBw+UDl2nVoBJRHGXzbH7J5rd3ypc3KnhAyHJEKo/"
					    "wv8oV448yPAVw57F6HyVRXE07nIxxLLinqI+"
					    "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"
					    "9CgtnZInKaybhMEt39Yx0jq+"
					    "Vjjl8cElyuJjzigEBj6uw01h1J8OD7FYZ3wph7TI2ZHirT7wC2XGMJQT310tKp2OwQZPJHMtrp30ymOYGf4hTuHgww2APtr6T3WhjHiwPkt5ayiptK"
					    "xF55tTIrHR/hZrg5loIFoF6Qjp3di+yzrVqe+VbyqNlbHEp5MN/iGwlqHqz2BnYKMcUnk55+kASvMgn05l37ulbmxcs8e28OgUiM4hcIPYap/"
					    "yJYz0OVGfntVBvpiXwVOchikehcRjURTgZjq9ZKnCVXLnZLjN/"
					    "lNdIyxCe0so2niTtDklIpTSvRPMBVOFwV2BzpDejXUZpgz5wCA8JfLlCinExw72V12Qppa6v9UpP1YAg7qTFSYKr7Y+SB+"
					    "JQYj5WlICwcKJ6ZD123gOLgzsQMrbnVuYfBQySigf2ORN+"
					    "R6UJtRHfum7snRm6jpE5J39k7CUWSzfBm8aRdnIV6ofdetZU2lGndfimmULuFHmGO88j12fjIUYFfusFbAFHyXysyiI+"
					    "ReVS431AQHkYyYyUNLBRMfCZM8Hgt2RFT1I8A2dME8RyzzlHzIoOyyiIHvOf+"
					    "Z14JXmEV9wYOB2JrVhIN8GmymUNGt6TrpcWcAT9z5NqPMjGYhXWaRFFrMUCc6JdsuVfJ5m9FrllJQE5cN79hfZY2FHdRK/"
					    "I1wLgoFb3t8KyYpBJ2MhrtZnH4slXC7wIyv6uZ1s0Lc7ZzowCet1UHWEXyhsaSOfXO3YEemM3QBfynSEFwPgoPhe3WM53CFHnzpFvj0lFPMyWHtKeU"
					    "QGstjg7pRRTP+"
					    "gOBQ5OLDQ21NKSkMbMUWjLZEXWQ4KL9WHqKYUZSy10RiuyIfcUJWcsZzWWCA3BHabpDtJ9d8omflbEZSOlk9RSmEsLtY0MrysQZrVUWVb45rf4614s"
					    "xR64RMXeb2DQiWP+H0uFwZh5HFkYRR4Dw0WNkcFS088v4SvnNXD/JQd6dm9GeST/0LXPG1i7QQ+tAMDL28PlA/"
					    "Kg3WUcK70eRpFrU5zcEUYa7vJG8SKWNxHVLZmifzbWgslslXCuqCTBlIj0aAA2g2gGDbZwE8cggn+Mp639hhAR3Nmycc8vLrxlZ6By+"
					    "BK64hJzMD8QQ7iSY8NYtLhpjA4suBgJAJfsxrSJy7UhzwdqUzK4J2ddEGV+jGN6w1OXfcsQ13zhIcwk9ssmo7/"
					    "micqexauiSxYVQflr1F4a2FB+2ItUodN0vNNSiWhBBpPJ7jDsTgFgOyV+FjuXRJW2guhJEUKSkl5WbRs2iDiFx6ryqcj2frMC52/"
					    "XVAWyog6vpFvfwlkQPNYljDwMKKDMZWZ6uTIwnQiJxQCltwruU456DytD7jz1Ify83KwcFLliaLP0ygotCeKsFdOiDjfoRpX1ROMwRaZD7pGgfIYvb"
					    "TQTBJoLSxYqytiGkrdwGGzSgRs1GilO1baaashFC9b+MQaad4o4t8NwmqhCgnFBwVXquNRGHVSWnusW+D2FKR0PavCEip8cFAobrQ+"
					    "ikcx4VIrhHIYbIQf5FMXfJRLtyCqawboo8WTZm2KZR1hqHKPwpS21O8GRVT6NbGgv6Y3jkE5LhVxd6mCL1QuTzCKA+"
					    "pC8uy22Dgog5KgEroOloZOUWzclQMpHIWBhYbSOPpJ2FOq6iPldWVW51o5oerVk6sVFuLzQqKDK/"
					    "12s7RpS2QF1NDo7AcZvcuuUO61suQuzrSTxVXWfsD1tRzTTBvshP1KDsXyTg7L5ejur7BJEs/"
					    "mFuRkofUJ1sACzNjAaFjWS3PGlDf38yo1CGsD7+V3jynPiLcX5QhUI6A+yvpat5BenfEMCSUbT+"
					    "pYs3x2a9MZ4P1C7oETJ0dgqwgkgzRdc9qkuDenRNQ4mIY8NWGe7uQIbA4B9U3WkXitYnDhe0tC35wSAXw1DlMZ5u08NXByBLaGAOtIi9aNLlGRW1tY"
					    "7TCWAgk7NbsAP3EENoKA+uasR8yXFhtLhDkXQrO67uQIOAKOQA0CPCkLyg4lwvyLR5/3ck6OgCPgCNQgwFJA2AR3s9OZGpT2mEamMJuT2I/BzWH2/"
					    "2n2WGeX+bIIuBK5LP7NS5cS4R2hxf+naS6QM7x6BJjOOF0ZAlIkmJrQlnd4Pknox90j4Epk901YrADvB41+"
					    "qKiYywMdgQUIuBJZANoOsmCJuBWyg4a6BhF9TWTnraipCwuo7L7lUT3f/kB5sLj6Vi6Q0vA2KO86lP7jw/sZvETX7F2iifKQje+VhMeD8vnoEvLP/"
					    "q2o8jhtAAG3RDbQCEtF0ADE4uANWpQAjm3Stp0/"
					    "tUQeYhwfWLZ4nQbi0T5v3raksfJ4bwnFZ8RrCFzz3QynHSLgSmSHjYbIUgpYF7yRjPJIX9LinN8nMDhJx50f5QGFtZKn0+7IC4lp/"
					    "i5iyUmhvHwTI4qPL4UFUnqUHU+UmsnwxNmP50LApzPnQrp9OVgUfOox377PIE2nJoP/"
					    "8YkijQ5e8aecN3K1P6MaLC8qGJRfaiUhBr8aHZWDRE7bRMAtkW22S41UfLCmNxg1EBmgTA3SO71ZJKw9EH+"
					    "kdJQvVTpK0qOwK1FpsBYmSenGykPB9X5RERnad2kn+XuC7SGAEvlZFMv87UnpEvUQiMoChdApi5gAxXJQfE+"
					    "5xLihx74sto4RyqfEbywPcZTXTatiYsJ6vCQr060qBRV5uLcNBD4yMZjO/"
					    "DdemG9x7m8fgXwKEAYuYmtwMvgZxJYGC6U3WGOaYGmQB1IYyonFT6wDzll0fS/"
					    "XkdIw8FmPwerglXV4kzdVEIRZ2URDhOVWz2vl49V3p30h8G8T985O3N8PAhp0DF4GbBi8SK4wlAaD+weuRfln9VAgaXrO+QJ7N9B1jtLgaQ+"
					    "fvWPaQxnwTJWDLsPbm+Gbonau9HkayoNfIMUzlbmXS2UgLLemQno/7AeBm/vG6n6aZlzSOODfKRVPXuz/"
					    "NCgXFkIJ4xcZueWB1cFADgNX8b31EV3b+oft4UCB/KjwZ/"
					    "KPSOEoBPZ8FC0J46c0yMUeFspD5kc5wub8N0jJnbaCgNq2+8Yq0xmnHSKgRmQQlr5+VQoLNVSeoBxGqsuaSpofSyG3MIwXCuaVeBYVCIkGykv5B15+"
					    "2DcCd/sW36VvhYAG/"
					    "AvxwnXTG52zxhJ+RhXjdRmUA8rlpcLCN0DlMy0ir9MNIuBK5AYbvVRlKQEsG1wgXQdLQxdYIuGpDxEKZwrDlKnFz6hg6bRzBHw6s/"
					    "MGbCw+"
					    "Uw12wLK4yroFU5XXcqv8jEp8na4AAVciV9CIraog5YHVUVwDsTKUxtZVWCTtLcxaGvdvCwGfztxWe3ttHYHmCLgSaQ6pM3QEbgsBVyK31d5eW0egOQ"
					    "K+JtIIUq0VFN92VTiPQ1mgxGcNgScgPA5l0xeUv8r/FOpHR2AnCKBE2BfAYhmr8U7LEWC35xspjXyXKDtHeSzKXgpblAyl6BrFw+7RT0OAHxyB/"
					    "SDAAnzoz0xn6OC2HXo/"
					    "VdiepGNvux69vRrFZys4+Ds5AntDAMs6vCaBJeK0AAFZEUxJHuQG33ZN2AL4F8m1naLJ87daLc59R2AXCGCJOM1EICqQmrddD0qLpYHC6fZfECbHq/"
					    "RMdY7eJVHYH+Tg7+QIbB4Bt0SWNRFrGSiA9D2Tg6576yGRNVYIi6lfKj4GhXWoL3RNeIlYJ0Hx7IpUH7bK85YuitN/"
					    "4bmr1lsurCuRZdhVv+0q9mE9RAMsvKxWWVx48a0y7WaSqY4oUf+"
					    "F52Za5DyCuBKZibMGChYCLrVCwqCPcQf5qYWBJTL4urwVrzx8nwGCN4u0YdGKAEjxWD+Es4bCguw3WTkKqiflRS6mVU23rke+CNJN3+"
					    "ql8pR7RMDXRGa2Why4nZLQdfFtV9gq7mg9pFSc0qFAPpWPYsBiuZefKimy8bUxHgWzkMtUqpOByAWEssK1JhSq/"
					    "8KzNaob5udKZFnj2NuuDH4Uhb3terDBLf+Nws2a4OtfYwOWpzQhrdKhlOwThzp9IoUzMCkPBVJae7Gkl/"
					    "axcNwKuXQrnLF8n84sAFuDmEEyOlCUBouidh0EBfMYRWEQ8iGgz+W6x786ZzrzVj6/"
					    "XECZsHD5Iea5iKfyUaDIhdXEFAtMUIJv5QIpDXVD3tIvPEm7+i81tyBDAONKD26JbKNhsWT49SRrHhDTlvtwpoPCsWqYxvxZ5/"
					    "iEXVqBoOx4DM22fRwKE4UCpQp2C7/"
					    "U3IIMT8hc4dEtkQ00qgYgFkdndeQixQFKcNNF0Lyc2mvJg3XBPpf8vR8sku5fM0qHpcFHoyHWSszaCgE6oIhSq8Wmavl6kKU/"
					    "iCeKCqVa9Ue+NWTohPGTgABK5GcRC/MdmhEE1Cl/Gok+e5TkKX6J3QRRPGstDNacgqWjeNZjckIRHG2CSxIxkE/"
					    "6haf4o2BQRqnVQhFTv9SkPkfvKJFxgPy3ngPAnBj8keVHifw3Xphvce4XEFDnHx20hSwXDRpQEgeFM3XiEW/tuk1aj9/"
					    "qojf4xQeFwBoJG+UCKSxMuWJZxKeWFIptyS81kbtXdihs4LCSDAOl3VTwv622KBEnR6AagagsUAidsoiZUSwHxZcGOFOZbpoT0xPWS6u8WCd/j/"
					    "HBi+U96GLwHaWYj+kVSgsLCmV2UHjKf7EM8HIaRsAXVoex8ZhxBPJ1izBIyaLBy5OlMJAjC87z9KWw1+"
					    "nA1znKisVb9shgxaAUUDSpctBleCU9PHa385QPCUSl8kphPRmesvpxDIG7sUiPcwRyBDQ4udsziBmAgRTGFIPBbftbSr/wRCEEUnqmMvdyKQ/"
					    "CcuuGtZfJd5TEj8fEWDBBUXGt85yIXyJDzsevMwR8OpMB4pdVCHDXf6fBylMS+"
					    "4UnlghvHxMWNs7JD6QwnuJgTRCOEmJPycdy8LCw0i81mSKlC7womtwKUVCwflBirygrBGQHwikrKa9WhoyTX+YIuBLJETnDtToyd0Tm+XTkz+"
					    "TYRNZbC1DYZkmyogjSwW2ylsJCnPKUrIOx9GCES6dBKKrwRz6YRjnwUS7dIrGusXD4uRZydqTrWTJ0Gf1kFIG70ViPXAuBv4rxe3Vqnoy8leP63MQA"
					    "6w2ycwswVl5UAJ18ug6WhvJgiYRFXPIrHIXBtAel8Qs5FAoWR5dX104rIuCWyIrgllirc2PusxfCLA/"
					    "utOy5wJ2t46us4rSgJPMFw7BUmIawuPrIudxrOf8jn0DYCrkSOX9LYFKnZvVLRDinAjl/lZeVGBXdqLJTGsOSpzfpPpRlhXqu2Qj4dGY2ZMszqMO/"
					    "UG7Mb3uKATPutoNb3kng5AhsGQG3RM7bOszXD1ImYdoiH4VC2C8Jd3IE9oiAK5HzthpPF76T8mBdBEXC27q8SHa2tRCV5+"
					    "QINEUAJcLCHvNKFq6c1kWA9Q8e5/r0ZV2cnfv6CLBWFdajWBPBpGbDDzsIndZFgMeUowuF6xbv3B2BZggwDUdvHFAiTmdAIK5/"
					    "tPg26hmk9SIcgXoEmq2JaJDw5IFdmBDWDTT2b5WnFDdyFD5MG1kTcXIErgqBZkpEqPDehD2zP+"
					    "gcU4dNQv6z6qvqMl4ZR6CPQMvpzJdSHMyTjNiKzPsMrAM4OQKOwJUi0NISwQpJN1FVQxYVjf9+sRqx+Qkd4/mYnZJjCm/"
					    "F85if6a3deFlwt0f9LA3woIPxxLZ/C9fl9qiZElFF8y3HKJX0+5aDtVde3iPx3y8OInR6hGN8OoZzOEzhrXhevvyjfL7Zy1ffjtbLFMb3Vf4l/"
					    "2O5zSqSltOZDmNVmCkMH6qp3ompPKlG7nhd2wn1lOM/LGenW8F4CbBrtMsU3oq3qf77AZlZV8QquUh/GZDpKLi5EhEwn6gU1kPm7sREE9/"
					    "C7xfpFLhL0K1gvATbNdplCu+"
					    "pGydjCeLDT5ulZtMZahgVCHO4YJrFa8LTD8sMgQGgvhFrCJ024Y5xGxxruUzhbePEPguR8w3xChyyVPL0F7merUSkELAy+"
					    "CIX9EEufBsjKgzML5SImWmsixx9ri6mhQ/KBV4oD/K8lQukNNwZLvr7xShK50kmOgVv3VJv7hLUtUZBKmlbUrnFdrBSFG8WYQ3GPIb/"
					    "UXl661q65gvqq+/1UTmDuCpuc/3AME59yTmJd5o+ng8qGfFjPBBPHxtSMgWWw0FrYfl8uMh+TASJhR4qFd79kI/"
					    "SYFChMdkTQoPjd6Q0KJKOdA0wdE6mO2EAyrcP9KaWyIPCKYu1FZ7cpB38QdeUZWSDmndTUh4Wf7IvORi0fDgo1Ec+9aCuPz+Z+"
					    "QwGKpfOOtYOhyjbSRiLBwqcr7bTvquR+E/huql+UAJiBt5dduWxG631/RCncNqXPka//"
					    "42uW75ntQqW1UpEFaKyvIGaVorP1AXrQeGTg0lpGPh07vwOjjLp/kuidAD8NzkIBZW/HMgADuWSQOmb/"
					    "34RvkbiT4MyoNKNczx+Q6mwULqK4rLyM3+qHVphDO6Td0DVHSXA40puCpPp07oo/SiuSku7N+0HafktzlWHKrwLZdGHoc8ihk9XT//"
					    "X4TuyRxa8JYjpZ2GuPM3HlMlTpUQkABYHGrIbuDBQ+"
					    "KTiIF1CdtdJrQqiATRVTumj4U5RkVBlAgYNlw9cplVjUwvqMOf3i0re0Tud5Y0KHhCyHJFkoTzrKGn8PReK526TE4p08M4feU61w8kYR6GQvdfeubD"
					    "xek1cw1Q5ltOkH0QMW7ZLLd45fGG9Y6y98wzJ9RLM1xhTQaTniWBjpzRgi5fHAp+0IIHIIGRgdGadwj6QRj53KuJTpUMH+KC4/"
					    "K7HH9LGCF654hlLH+JUDuUhw7dZYuuIuRyWr6QkrE7dl8kznlOXNe0wF2OrX4ex6kx7UOcavFbDVXI07wfi2bpdqvAuNCy4F/"
					    "tOIW0eNBvzNbA0oZ7byZCvwulMuG6QD6UdCx/hQyMcFF/qsMGkVlzoTJE/Yb20isc66TWIwpD5Qe7U3y9iGXRTLZ0b8cFgtPuY9WNpT/"
					    "ZjfUbbYSTNGMbUL3+0Tic9iF8P0xh2CVwX9wNkXosW4g2u9Feo14+fgo6PsZwWfRnmzbG8Oxa5H6IK2AA2v5dA8XZH7oWPXOSDLlSK9OK1xd8vUj/"
					    "WPzqSnHQC3ODUo4tbPHQAAAZASURBVEvc6ERlGv7m9zgrPm2HuRjnyqJT1OL7pdwLCos+"
					    "i8n8kgHLhUEADvlg4G4PNkwBw7nS52nm4IpllNepFPa6UI6yrk65bGN9GmGsrSZvzI0xp+wSbqWwaizv4FpBdJijAaMKMh98rMh/"
					    "UFo6Px0JgQMpjDsendAG6aZ+vyj5GDzIey8XKIaxOGy/bowxZ/"
					    "FG22Ehxr0BIB60x0s5UyyfRr5UkPY++beWEcM5uCJLUGQIofwMQtok7UuETQ5KpWlGEZe5fZrysWKpR65YCc6pCeYJ0+ZYPk+"
					    "YD56qsgwYXvWnQrb2QKPyqT+UQy2hiPb0+0W7Y/A06U2sJE9oePRmg6y27ienU5k17TALYwmFtUCb0Lb/kUOp8LqC/"
					    "RLzvc6NmBalNxPwKQ4E8UMZvZIP/"
					    "5xm4QoPOawfFhTpb8hZ8xvOvNw1rqvxjvKj+MDmoGuUHk9ieI9miFphHvirrOZYVikRSqfwoVrWhosHHSDthJa1FBbilKe0EDaWHuWGS++"
					    "wmJc0FuGHKAc+nblb5NQ1Dfxo8ToPZqmu4TXW0Io+D0mW0XaIspfwKYUdatMr3UVxVfmz+sF5WqPrSyVsj8IG6jAoamPMu3IG5DiSt8swcXI3Eb+"
					    "7aAH0QULjAuk63BF1wR0zLDASoXAUBndflMbQ7xcH77TwWEg9+"
					    "RbyOHs2YdSTG8wkhOGzBVxPxaRXv1OZtcjfGPMWIhV5VFsixdzbDUSrYraxCPjIudxruerfLyrvC6VH0dhmJ52eTuJbNP9P53wWDpvF9dTab7hdTsb"
					    "8VGym8j/"
					    "76quvuKMw2FhAS6cAU3mvOl5YcJdlzvpznXOXcmqAgOPaAMQNsFA78loE61TPrm460xBfnhjxtMgVSENQxcpxbYvnxbld63TmZGCj8tjz1ONkDNZg4"
					    "Liugeplebolcln8vXRHYPcIuBLZfRN6BRyByyLgSuSy+HvpjsDuEXAlsvsm9Ao4ApdFwJXIZfH30h2B3SPgT2d234T9CujpB/"
					    "t+3sl9IvetrkvbxfuZ/MoROAEBVyIngLfFrFIavBjoPwLbYuNcqUw+nbnChpUiYbct5PtcnnDw44oIuBJZEdwLsubt4/"
					    "xrZRcUx4u+ZgRciVxn62KJuBVynW27uVr5msjmmmSeQJq6sIDKJw14eZKP9aA8WFx9K3dESm8fHyKODyzxtnPT94PEjzegN/"
					    "XjMSrrtA4Cbomsg+tZuGqwYnHwBjaKAMeHk1AS0JElonjeSn5PupiWzzxaevK0In6ShCx8RiHnzweHUXxGKDCu+"
					    "SSj0w4RcCWyw0ZDZA1S7vYoAZRH+gkHzo++"
					    "Tq80DNRX8tPPOvKdFZTQICk9n0n8SQ7rZpJiOvsGC2szfM8lJRQfyiyQ0qPskCmtw1OkH3eBgE9ndtFMRSG5w/MHvu5/MTEVg/"
					    "S7Yg4FKj0DGOXDB5cZ5FPEd03n/"
					    "PRrtZ8kTQnq8ZdBwC2Ry+DeolQ+SdibskgpYJ1gcXR3eitIcdzpmWKgZFAMfOUtn2oo+Ij4In+vnKMUSYB4Mj05yCcf8qRKjrKX/"
					    "HhM2Zy2ioBbIlttmRG5NEAZnLhcWYRvnSq+OOgVzvSF6Q+DmXMsjN4X+3UNX9YtTv3pl33k+"
					    "oN4GRHWk03lMU1Kp1iW1v2dIOCWyE4aakDMfB0hDFzSanB2PwLTOesa9qsP4opTGYWjQFgjafFzKiyiXL5S2GvkUVqnnSLgSmSHDadBx92dgcegDKQ"
					    "wpg/c1Us/ArMpzFNiHWP6byIvC2d6c/LPqSIzrAuUUiCVgwz3cqnMhOXWVEjvh/0g8Hw/"
					    "orqkGQJ8Bbz2R2BfKO0rDWT2btjAZm0ifzmP6RB8jRjkRStBeVFY8GRadESEy231h1NH8nrAcgRciSzH7qI5NUCxRtIBb/"
					    "IchSktVsHouoPSoFxw6RSE6dGSn34pW7B2ciVF8JF8BDrtF4G7/YrukrdEIColFFMgXQdLQxdYInN/TvXExI83gYBbIjfRzNWVxEpgGsLi6iPncq/"
					    "lqn/6pbRON4aAK5Eba/Cx6kp5YHUU10Asn9LYFIX9H+keEEvi/"
					    "o0hkCoR7jZ59b9TmM9hc1T82hG4IQSkA9ge0D1Vy6uOEmEhze4ueXy6yJbH+bUj4AjcBgKjO5v/HwKeLUfK0MYJAAAAAElFTkSuQmCC",
					"text/latex" : ["$\\displaystyle \\left[\\begin{matrix}c^{2} dw_{dz} \\rho - c du_{dz} \\rho w + dP_{dz} w\\\\w "
							"\\left(- c^{2} drho_{dz} + dP_{dz}\\right)\\\\dv_{dz} w\\\\\\frac{dP_{dz}}{\\rho} + dw_{dz} "
							"w\\\\c^{2} dw_{dz} \\rho + c du_{dz} \\rho w + dP_{dz} w\\\\ds_{dz} w\\end{matrix}\\right]$"],
					"text/plain" : [
						"⎡ 2                                ⎤\n", "⎢c ⋅dw_dz⋅ρ - c⋅du_dz⋅ρ⋅w + dP_dz⋅w⎥\n",
						"⎢                                  ⎥\n", "⎢       ⎛   2                ⎞     ⎥\n",
						"⎢     w⋅⎝- c ⋅drho_dz + dP_dz⎠     ⎥\n", "⎢                                  ⎥\n",
						"⎢             dv_dz⋅w              ⎥\n", "⎢                                  ⎥\n",
						"⎢         dP_dz                    ⎥\n", "⎢         ───── + dw_dz⋅w          ⎥\n",
						"⎢           ρ                      ⎥\n", "⎢                                  ⎥\n",
						"⎢ 2                                ⎥\n", "⎢c ⋅dw_dz⋅ρ + c⋅du_dz⋅ρ⋅w + dP_dz⋅w⎥\n",
						"⎢                                  ⎥\n", "⎣             ds_dz⋅w              ⎦"
					]
				},
				"execution_count" : 15,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [
				"# compute the z-transverse terms\n", "\n", "#drho_dz = Symbol(r'\\frac{d\\rho}{dz}')\n",
				"#du_dz = Symbol(r'\\frac{du}{dz}')\n", "#dv_dz = Symbol(r'\\frac{dv}{dz}')\n", "#dw_dz = Symbol(r'\\frac{dw}{dz}')\n",
				"#dp_dz = Symbol(r'\\frac{dP}{dz}')\n", "#ds_dz = Symbol(r'\\frac{ds}{dz}')\n", "\n", "drho_dz = Symbol('drho_dz')\n",
				"du_dz = Symbol('du_dz')\n", "dv_dz = Symbol('dv_dz')\n", "dw_dz = Symbol('dw_dz')\n", "dp_dz = Symbol('dP_dz')\n",
				"ds_dz = Symbol('ds_dz')\n", "\n", "dq_dz_def = Matrix([drho_dz, du_dz, dv_dz, dw_dz, dp_dz, ds_dz])\n",
				"T_2 = simplify(Sinv * A_t2 * dq_dz_def)\n", "T_2"
			]
		},
		{
			"cell_type" : "markdown",
			"metadata" : {},
			"source" : [
				"### x1 Upper Outflow\n",
				"We replace the $\\mathcal{L}_0$ component with a relaxation term for a specified pressure at the outflow boundary to obtain "
				"$\\mathcal{\\tilde L}$, and then compute ${d\\tilde Q}/{dx} = S \\lambda^{-1} \\mathcal{\\tilde L}$."
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 16,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "iVBORw0KGgoAAAANSUhEUgAAAvUAAACWCAYAAABevXdQAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4Ae2dTa4UR97uC8S4RYPU8wbpLsDgFT"
					    "TeAQbpvWPwDkAMrugZsneAmb8SmB3YvQKDF3AlfOctGR/1Al7f5xcnIh2ZlR+RWflRVecJKU5kxuc/fhFZ9WRUZJ5rL1++/GK3232Ub3Pv//"
					    "nPf37dluA4EzCBSwK6Rp7q6FeFP5UyUd6byvsi5r8TwyeKvyitw/nGEzD38cxcwgRMwARMYHkC+n56Lf9NX0tK/6T0pBlqWZV27UYW852OyZy7X/"
					    "MTH5uACdQJ6CJ6qJh7Cr+vpwyefasy1cWr49cqwc313cGSznAIAXM/hJ7LmoAJmIAJLEWA76cf5b/"
					    "qaeDbljTyo0V217KV+ruqaHMRLxvuHIMdLdBWjTpWDsdq19TBOaQ/Kstq+78U3hvbvsr8oTJfKQyr+wq58+ammhuEX8bW5/"
					    "xlBMy9jJNzmYAJmIAJrE9A31H88n9TIQvtRS6WYZX/"
					    "2vWiEitlkkHP1BTbgez080rkcTQsznR8DuH8gwaHFfYpjlX6D1MKusxBBMz9IHwubAImYAImsBQB6Sx+9f9GIYuGo12+/"
					    "aaocBR2XypzWOpXyErjheJre+91juAhD3uEES/PFde5Aqk08t5W2Hp3ongEPz8xPJDHhXYvD3d0/pZ8aoc2N3Fz2al6fpL/Qv6p/"
					    "NitHbP3XTYMjQ83Y4w5K82b8W92XLawAo6Q+00+bW1hLgYbFU7iHOu9r7DvZ7KmOdW5yjXHFBvZl995jaTCygPrN/"
					    "L07Z3OKWtXQMDcCyBtmMVze0P4sWmPwfpjMMRc6Sehf9Ymd8bcWCzkO76mq0v4Tt5+I5hsH0CEJKFUa0/xiMDH8oMP/"
					    "ykvorxoG0Ns9xeFe1seFPej6rkv/3cdbyos57JT9bDP+h9b9kdtt45PjGfifY7cEZt/3dJWtV852YE9DxRWN4o65qcttr3ULhadj+Ks/"
					    "Fx03Mw+rxqceKA6Jt0QqRzX4NcK309s+koXM/fjHX7P7e3HxmOw/hgMMY/pR69/1iZ3btzUHzTX7/"
					    "JFekr50TXTt9+oAkQIrlVMxAZ2ChEcJeKajf+D2xhUV2r3bWh9/w91AIMObuZmtpM+tT0YsWb/"
					    "WseHsZVnjFkp7hqTNe2s2pJNzIPHCitBHxN5biTNoyq/DsZyZo5xE3mQk32stsN31C8cKpf/YnWQDcdUmH7JL379mvsxjXrdlnOd2/"
					    "VeHveZx6B7fGAjP/tn1BBzpafvra7v2qPQP93kdjv6KD8rO+qMbba+fU7pJ8dNNqOb+dX+UR/"
					    "PtrTrbZEFcQliTdTIEDb3I1DY0tAq+DvqfqT8ze0IbVlTu62DpwJ3YqHbbYVXjJvNzsgFPojUrVzp+"
					    "GxlX1u7bFtqW0VnhX5vi8sYzsqbPiTY7jXZqR7mK1uB+OWAGyT296c5PFQv2374pYyL/5wc83zRuR4Zm/vxzppzndvHS3zfMo/"
					    "BPpMUs9Rn1BDz2XRF6sgG4RLszpUb+"
					    "qK2o6BkvG6UZGrJw7aanb4cK3GtY4QOK6NtQqqlisso5WebTulbdxi8ncrsibLL2sKeew677mRjtsWDue2ED3dsJTc+s3Zu5PjM2vbclcW+"
					    "8MG4t3UrtlXKmToOEtSyBfHOygriMt0k8ItH6fWDDdX1p2O7AgLmXgBp+yye2x6D7Qmsb8HQvJ9bV6zfw2VaPFduvA1v9Er9jYmMESGVsNYXJT+"
					    "nsH1gygN7TNRScdI5eFEYkY5IqmzT+RZubjvhA6fVRX1st3R8tmC916bGP/BXmITzhTKlFfC+bS6lnL9UfdQ56GQDv1zxkC6OMh/i/"
					    "GQPP6sWhJVT2t41FPtBPdx0UBd2cg2+kg9OeaiL65BfqT7pvJorOubDgetizK9nKjLOqX64s7JAP+FNm6U37Mo+n1O7x8CdMeItBmFMFbKAgV19c/"
					    "BgCGrnFMYh9FO2Mk9K5zbPb31UmWpuU4nOeUB/"
					    "8Nkt8h7i1E4nV6Vtfv119U22dV0LoYjSr8IYbHIt9ozJIPOWsuF7rSV+"
					    "pzGkf6TPon9U31HO55K52sJnNW60PcBuzDxEx7L7Bc93apG7UZQry6TKAYQLQk/nPJWdPpRDwsg/PNjKimWvUzvAwDW3/"
					    "HBx8KXJF+bmDw0uZCeiLHHX4aquaHxWtWi4MbazhBVvhXzh4xCXzDPmS9dNXylnPvA+y3c6tUs7zNVKTCuO9hG92PdXhYNO+Rj39FahIJAVl66B/"
					    "GbrheJpi+vgjXwufG7pnF/XFhP1apfPAD58koDFbm5YivqpfLM4tX9M3F+oU8yV5Phgxj6uqXzsUvrB4amMAx2VrQfPbdXBjexDhaN/ph4DW/"
					    "UPze9Nr7+2vsjm3muBMspzVcZg9WuxbUxGMq+q0DitrX+OcT6XztUtudF2H7sx8zBpDK7jLs1S9TUd3EgHI8LwE5Dy/6aJxn+/"
					    "QkiwgvJUIR+uY4XDoECKtjGguC/"
					    "VBh+wySHE+A9cpdsWUrmlwlF2ym6EDzcjfSuaDC4Du4UrHZ8tbBtsU1wrcatj5g0+zeFm+VLOiOS+8aJehPd7tZlfD/"
					    "yUVq2uk6nPqSzsEfRcY3l7HPMGBETiTiEf+D9zLEff8rzEPZHn14VWp/"
					    "Iw4eacFeTiD49UmcpwI8G1n78J64PiEPkP5BcRsKn9Rrgld+ZP7vgsqMYbDvLwbY5PVUbpk8dCZU9mHGTr1LndZMx8H5yzS3JV+9g0+fqrBn/"
					    "+g95r4czHoDlPRl+L8w9H+KwumvctbY/SFXn5sXNf+Q/6Psnbnuu4dK62tLcaN9puYXfIPAzf76oWvVHsbhTn/DNjgnShDqQ3i/"
					    "BFxIoJdyG5iPmzVPcRBifju3NFIaY2D1qRUXkuqn/"
					    "JE5Y6RPfgF0esLAjGEjujLbyLvvNLPtZJeq+9sa4l+lU6PqUsQ76l7I31skWlzcExzd+"
					    "u9F7OsRB5mhdrVZ9seK0TbsIqQUei4seuWnNdIYyrGxPqkaMP+XWWv9++7cZhaH5h7zO1UzrHsSF3/"
					    "DLQvKlON6GtPNUWbbaNRfgAU3pY8c8b0TE3Mp3Xf6zzKLjLli9kL31v3tCw/"
					    "apvPA4ZiynjgI2zfm4UjsNcc5s5VLvOdN7mluSattTR7ujrT7w8Bm0jVo8bmtudYzD1WozzeNbPKHWpdN7Xe3+Y/hk79w/"
					    "9PtktwO4UuDFmnewmzMNOjdGcHPn5jfyk8JgvK1acKqGhYzrClxercojUqeKgzwQuroPrlW0XqqfrQcm+9kvTxthZmndQWK/"
					    "Qr9L+F+Vb0N6+rQ3MXca/"
					    "yw1yjgWpg7xdji92rpG+trrK5vGhnjxCdd7UOcKVVbjgUjsKWaklvbo2L3OE6zLdgMeoWkC5pvisZeg6UZvMYdp818hDPK71mlW5NtG+"
					    "i33gLUB99l7WvP/"
					    "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"
					    "6UFHxgQmYwBoELOrXoOw2TMAE5iDAK2+"
					    "br9aco96SOriR4G0cdiYwSECCni15vFWLG1E7EzABE1iFgPfUr4LZjZiACRxCQOKIfez3FY56K8AhbeZlo0jLoxD57OsffI2q8rCaz2vk6MM7nY/"
					    "6pUH5EYbc0PDudP6zLP+N2k4ExKKXrdJZLWfOpF9Z2LaVnoOA6y15btbYVpXidTqL4waUcT/"
					    "owbdZLHElJmACV4KARf2VGGZ30gROngBvBTiKB5KjkAx7+0uoKj/Cn+cA/"
					    "lA4eq91FJv8TwD28PvXggz6EFulf6fs3ymEPf9Qbe+mUHGMyf9T+"
					    "Hf5OYU985X99TdnrlfV2pmACZjAPgFvv9ln4hgTMIHjI8Abb0YL4rm7IXHGajv76RHpxQJQefOV4qlmsSq9OYOpxsNAnnGc1Q2xVTrccG8vg72/"
					    "rKizaj+rbWqX+cEN3SN5OxMwARNYnIBX6hdH7AZMwAQOIZCJsk1XqWUHgp5tGmG1N57vFJb80z7KsF2n+EYgZ6Zyc9wU5FVucYxwxs/"
					    "thtgOsWNccbcvg1n/MmfZfnMUvzLN2jNXZgImcHQELOqPbkhskAmYQIMAomyyIG7UNelUohrhx4ouoj6t/LI3vvQ/"
					    "CdOHQ17DOSRcVf2VdUNs001Y1/MPIV30ulbyDwH7SYW9Un8IQZc1ARMoJmBRX4zKGU3ABMYSkABmZZZtDTzc+VHntRVLnfMA6NA/"
					    "cfpSeSatcKvcKCd72FrzWyxEmx8UhxhkPzt9qb2bXml7D70qjhsA6mEFn7oQ89wIvJIPTnk4fyz/hY7ZLx9+BdA5bX7SeY2T4oJwVTx7+W/"
					    "Jw5M6eMNK6y8Fis/7AkP+KdIhNxaqYlsn+wfZtljYKfpVHwxJ52atS/"
					    "S3VFkcRZ3sqfe++mJkzmgCJjCVgEX9VHIuZwImUELghQQNggkx+ka+EquKQ+w/VDj0dhDE9Gf5xZxsQCyyXx1b39OQQlbmsQ3R/"
					    "VfihpzyIRC5UWHPfRDbCtM++FxQP1Y8bf0oTzsXChHoCHF8zon+Iz5xPHiZ6qUd8tb4KT31hfpCmzGOm4W78q03AVR+"
					    "zE52l7KtuqEyiVsag5CmeBhxQ8a8/FrnYcxD4rx/"
					    "0rylvSVuGua11rWZgAmcNAGL+pMePhtvAsdLIAqqn6OFbHFIAicZTVyJ0LmlfEsLUUTf+"
					    "4a4Y9tEtbqu416nsohvhDZiPbeXY968wir8TiECj20ZOPrGP7FKr6mkjkrQk0EOMYvjF428XuLI33T0pbYqT7lYFiHbumVI6dwg8ApIbkhKxkVZ13G"
					    "yp4htizWJ3ZexfykL/LmhamVBppj/UB5hzFUd42xnAiZgAosSQNTzRfvf8v+zaEuu3ARM4KoRyN/"
					    "j3iaQEVwlohlB17whqFhKfJH+"
					    "L3nCUsfqbBCuClkpR2jXbFF80ep81iCimG0WbaI8XwnGznexHCvJCO3gVLY6TnEKw82P0ppCm7J5vTvlCX1RyKscmy7cQDQjs3PKPmtpJ8syfBhtSG"
					    "I6LxCErdLb+shNT+0Xh7ygjkvZNooFdruBuptl0vkcPDrnbWrEoQmYgAkcSOD/qjw6foeo54P2v+T/"
					    "j7ydCZiACcxCQELqgooUIvAQspXYVRwimrh8S4pOWx31BEHYlhrbudeWVhjHDcdPsZ7CIq3ZQj15iuqkj/"
					    "S12v6huHQzkYRvEvh50fyYfE3xTp34t3lGHe/"
					    "ZQLraTLzTLyeNYuGUrSgl49FWtopTW22iHRuon18l2m44qvIdB3v9Uj17bFvKwq55M9SSrTVqDh5p3lrctyJ2pAmYwAwE/pfqQMf/"
					    "7xszVOYqTMAETKCPACuwzbfXIJgQelMFV197xWlRGCIOK9FdXDjL2FMPYpR+tonlNi5ZraFcl3BFOLMPv+LXYwN1JqFd3RzE/"
					    "C+UxlYU2uHB3dpNgvI8UxyO7UGsljNu4Vhpza1ASprf9fSrj+1O5b6I1rSx3zM0tjM3D7jiLi4D/"
					    "zUBEzCB5QhcX65q12wCJmACgQCrxJX4jEzYUhLElsTU0yioYtJegHhM4mgv8ZAItZvEVgpr1Sk9rabX4ntOmkK3em5AdfFQMCyS21uBTwlZ2CVcecg"
					    "4/"
					    "PKhOuHHCnjqQwqzasIbiPjPqsE+hTeVyJt82HtPPYwFIrgSwIpH0POcASvrrDiTl+P78kkw63A1N4YtRqWxG7xhU7+"
					    "W4gE3nFfqLzn4rwmYwIIELOoXhOuqTcAEAoGaGJOAQhAiDJPQ540sbUI04WPLCPmXcojavf3csomV6SIxFu1HEFeiXXGsatPXD/"
					    "I43qKTRDX58EOCs7r5oYLMIULTqnr+Rhv6QpnKqU3aeKcwfyiUvrHlqDk2aUwozy8BKZ32kq08sFut+JNxSae2mBvFbDNb+OVhp/"
					    "LVjUqW1jxcigdjDMe++"
					    "d20xecmYAImMImAt99MwuZCJmACIwggJt9I2CCceG87QpE98LyekdXgJE512OoQmjyAip9dHKnO8CpJhdjHVhQcIvbVyPa4MaCf9In/Tkq/"
					    "ENipnzx4mRxijy1JQ4ITO3ijTtPBlNdiPpCvxLqO877AOm2VabbDLwD5jQyr2rU8qiv8EqB4HOlhC4/"
					    "ic+EfElf4U8xW9sEZvuHXBJ1zM8Kbbvr28i/Fg3le46pzOxMwARNYhIBF/"
					    "SJYXakJmEAiIDGFEM8FZEpqi0tpVajy6SFWVusXEUhqoxLGVcMjD8b0kz6p+vQay86WlK+"
					    "26p4yKr5ToCqtty9K50YBn1bhqZZ2EL7E7xQyZsHpGHFcrdrrnK0+edmYc7kg2tM2X/bilDc9P1BkkPIvyYM5m9/"
					    "MFdnkTCZgAiYwhcD1KYVcxgRMwARWJvBO7bUK3JXtOPnmokBuiva0Us+K9U55EO6/"
					    "x84+VpiL+N6bhlimLaDNqt22DFvELcVD9XKzwA0Rc9fOBEzABBYn4JX6xRG7ARMwgRkIsNrJu+inCsoZTDirKljh5p9k8bAszw3AFfHOf50N4lsh+/"
					    "DZShT20sdjnU4bA5Vf5FcWDJrBLcGDGyQeND66G5kZeLkKEzCBIyRw7eXLl6wk8MGeP2x1hKbaJBMwgatMQOKIveVvFa72kOZV5u2+"
					    "H0ZA85TnM6qHow+"
					    "rzaVNwARMoJ2APmt4GxpvJ7vm7TftjBxrAiZwfASeyKQXx2eWLTKBOoHsSzbftlTP5DMTMAETmJmARf3MQF2dCZjAMgQklNjGwBtpeEuNnQkcJQHNT"
					    "96887XCzoeZj9JwG2UCJnDyBBD1f4m9SOHJd8odMAETOE8CEkpsvWHfNw922pnAMRLg+YS9t/Ico6G2yQRM4CwI/C31ggdl/"
					    "xNPUpjSHJqACZjA0RGQoM/fn3509tmgq01A83PUKzWvNi333gRMYAYC/"
					    "051ePtNIuHQBEzABEzABEzABEzABE6UgEX9iQ6czTYBEzABEzABEzABEzCBRMCiPpFwaAImYAImYAImYAImYAInSsD/"
					    "fOpEB85mm4AJnDcB7c3mf4i8kb8jzz+C8l7t8x5y984ETMAEDiJgUX8QPhc2ARMwgWUISMT/"
					    "oprvKfxDYfivrsu05FpNwARMwATOgYC335zDKLoPJmACZ0lAgj69uvOns+ygO2UCJmACJjAbAYv62VC6IhMwAROYncBXqvFXiXv+"
					    "8ZadCZiACZiACXQSsKjvROMEEzABE9icACv1XqXffBhsgAmYgAkcPwHvqT/+MbKFJmACV4CAVuN5IPZb+V/lf5NHzPOw7Cv54JTnpg6eyt+W5z/"
					    "rVv+IS8efFPdcIf91dzaXtXlXlX7M26QRnf+g4IlC/5oAEDsTMAET2IiAV+o3Au9mTcAETCARkCBmRf6jPKIc/"
					    "52OEfi4fKX+RUz7WfEpPWTSn1vyj9PJjGFqk4d1a23KFm4wHiq0oJ8RuKsyARMwgSkEWKn/SyyYwin1uIwJmIAJmMAEAhLErL6z2o2YZ5U+OY5/"
					    "SYJZIav2iHlc2Gt/eVj9faKjL6uzxoHKI8ifyfNGHd6sM+ha2vzcKO4zWMkAABeeSURBVIQdRXU1yvnUBEzABExgHgJ/"
					    "S9WwUv+feJLClObQBEzABExgeQKI7ZsS0NVWmthkcz89D8ymrTWPlOdtwzRuApLobySF09f8VR1jRHizzVBHVjk2Nu3Ikn1oAiZgAiawMIF/p/q9/"
					    "SaRcGgCJmAC2xBAoOdbbBDerN6zx756P73iwhYXhQ8VT/"
					    "reTYDSkuhX8p6jXK2dvRyNiKxNxHutTaVhH3Gj6mw04VMTMAETMIGZCLD9xs4ETMAETGADAhLGiGJ8Jd6jGQj9ndLbBHPXay55eLZyse4XiuABWtpg"
					    "v31tVV15nikOx0Ow/GKA8A/HSsu3An2t+OarNcm7U74xK/"
					    "8UsTMBEzABE1iAgFfqF4DqKk3ABExgJIFcQFO02qsu0cyDqKyKJ8dxTUiTR3HV1hidI+J58Pa1jlnR5+"
					    "aAPfnVTYLiEfTvFfJQ7i158nJ8X568udtrU4nYGOpTuafytGlnAiZgAiawEQGL+o3Au1kTMAETkBC+EAWEcSXaFYdAR1R/kMd9pbhc9CPo8/"
					    "wc32nkYdX9p0bcTuf5zcBFlo4gT78W8HrK5jaevH3qwT7Ef6rvruLoi50JmIAJmMBGBLz9ZiPwbtYETMAEIgG2tryRKGblnC00bJFhFfzbGFetwCtu"
					    "pzjeksOqOm/MCUJcx6yw547tO9SbHHviq1V6IlUm35NP+jcxPgl1TpN7rgNs5GaBd+gj8u/"
					    "JJxux2c4ETMAETGBDAhb1G8J30yZgAiYgocwKdy7AE5S2uJCmMkGAp4x5qDRW3fH56jo3CT/"
					    "GtJ3CalVdx6y6V6v2Om+u+"
					    "qf8bfa0xak6OxMwARMwgbUJePvN2sTdngmYgAksSCAK9qZoTyv1rOAj0hHuv0czeIA2vwFgVd7OBEzABEzgxAh4pf7EBszmmoAJmEABAVbQ2abDw7K"
					    "fOZZHvH9SHIKflfl38mz5SVt4OMZZ1F9y8F8TMAETOCkCFvUnNVw21gRMwASGCUiss3++toe+WUp58i08vXmbZX1uAiZgAiZwfAS8/"
					    "eb4xsQWmYAJmIAJmIAJmIAJmMAoAhb1o3A5swmYgAmYgAmYgAmYgAkcHwFEPQ9I8TMs+y7tTMAETMAETMAETMAETMAEToMA2yfDdkpE/"
					    "R153oN8S97OBEzABEzABEzABEzABEzgNAjwdrPw/0y8/"
					    "eY0BsxWmoAJmIAJmIAJmIAJmEAnAYv6TjROMAETMAETMAETMAETMIHTIGBRfxrjZCtNwARMwARMwARMwARMoJOA31PficYJJmACJrA+Ab0//"
					    "gu1+kae5534B1H5++TXN8gtmoAJmIAJnAQBi/qTGCYbaQImcFUISMT/or7eU/iHwvDfXq9K391PEzABEzCB6QS8/WY6O5c0ARMwgUUISNDzNgOc/"
					    "9PrJQf/NQETMAETGCBgUT8AyMkmYAImsAGBr9TmrxL3Fxu07SZNwARMwAROkIBF/QkOmk02ARM4ewKs1HuV/uyH2R00ARMwgfkIeE/"
					    "9fCxdkwmYgAmMJqDVeB6I/Vae/+79mzxinodlX8kHpzw3dfBU/rb8J51/HxL0R8fk/UZheKBW4UOdUx/"
					    "78mdd6Vd9yY67qv+jzis7dL7T+Q8KniictV3qtjMBEzABE+gn4JX6fj5ONQETMIHFCEj8siL/Uf65jvHf6RhBjstX6l/"
					    "EtJ8Vn9JDJv15Ic+NQXIIas7vp4gZw2QHD/DW7JB93HQ8VGhBPyNwV2UCJmACpQQQ9X+JmVNYWtb5TMAETMAEJhKQ+GXVm5VtxDyr9Mlx/"
					    "EsSxwpZiUfM49hr/zkc/fmHG4PqLTnKz80Ab9DJ6/"
					    "wzt46U51v5P+Spu8jFvH12YBvt2pmACZiACaxH4G+pKUT9f+JJClOaQxMwARMwgeUIsNJ9U2K5toVFcc399Dww+z6a8Ujh63i8i0Kbm4N8VZ/"
					    "kD0rrFPVKD3UozxgR3mkHDcph99tw5D8mYAImYAJrEfh3aghRb2cCJmACJrA+"
					    "AQR6TYxLZCPQ2TqTr7yH7SxKY6886flNAEL6okWcf1J8n6OuWtt9mUlTG8kO2qzZoTRsJm5UncpvZwImYAImMBOBGzPV42pMwARMwAQKCUgEI4DxlX"
					    "iPRRH6COg2cRy2tyjtIuYlIK6WV+lsqamtwCuOtth7j9jn+LF8bVVdeZ4pDsdDsPyKgPAPx0rLV/2/"
					    "VnzzdZvk3SlfrV3i7EzABEzABNYh4JX6dTi7FRMwARNoI5CLZdKrfekSyDx0ygp4chw387fFPVa5SujrGBHPw7ivdcwqP2kI/"
					    "zwPgv690nlQ95Y8eTm+L0/"
					    "e3NFmU7xXNxcq91SeNu1MwARMwARWJHB9xbbclAmYgAmYgAhI9F4oQFQjkINTHKvdCOgPlzG7rxSXi3iEdCWWlcY2GAR4XgdxzdV/Vt1/"
					    "atS103kuzNnCk9qijVQHr6dM+/kVHVzKF06Ujs2I/1TfXcXRPzsTMAETMIEVCXj7zYqw3ZQJmIAJZATYxvJGAphVct4/"
					    "z3YYVrx5Mw1x1QOxOt4pjrfksIJOPKKZd9r/XZ46UlztHfZKwz2Sp63kEP7VKj2RKt/cp5/eeZ+EeipL+FyeNrlZwAZE/"
					    "j35ZDf9sDMBEzABE1iZgEX9ysDdnAmYgAlAQKIYYZ6L7QSmLS6kqUwQ2yljDPvys+qOz1fXuXH4UXURn+zgkGNW3atVe53fkc/Lkme03aFy/"
					    "zEBEzABE1iUgLffLIrXlZuACZjAdgSiAEeEB6dzRHtaqWcFH5GOcP89ZLh8gDYX8azK25mACZiACZwAAa/Un8Ag2UQTMAETOIAAK/ls3eFh2c8cy/"
					    "P2G7bqIPhZmX8nz5afsJc+Hus05CW0MwETMAETOHICFvVHPkA2zwRMwAQOISCBzv752h76Zn3Kk2/"
					    "r6c3bLOtzEzABEzCB4yDg7TfHMQ62wgRMwARMwARMwARMwAQmE7Con4zOBU3ABEzABEzABEzABEzgOAgg6nkoip9e2WtpZwImYAImYAImYAImYAImc"
					    "BoE2DIZtlAi6u/I845j/omJnQmYgAmYgAmYgAmYgAmYwGkQ4I1m4f+aePvNaQyYrTSBkyKgBy9ZLDh5d2g/Di1/"
					    "8gDdgT0CnhN7SBxhAiYwEwGL+plAuhoTMIFLAhItvBqR96Gfg+"
					    "Md7vRntDszDqP77wKdBCbPqc4anWACJmACIuBXWnoamIAJzEZAQvahKrut8LvZKt2wIvXjJ/kv5J/"
					    "Kf19qivLOygEb1PYbeX4B4Z3y+SsoS826cvmGuCmdGzb+wy4/X+PYm5r+WddNHbMt9YM87/lP8Tqd7lTPpDk1vUWXNAETuCoErr18+ZIvC/"
					    "4pyV192OT/SfCqMHA/TcAEZiCgzw9E0L8U3puhuqOqQn3iM/IfCgeF3ZIcVPcfsuNrhe+PCtCRGzPELab/onBv7iqOf8h1X/7vOh4c/"
					    "1IUqqt4TpXW6XwmYAJXj4A+S56q168VXvP2m6s3/u6xCSxF4FtVHB7WWaoB6tUH14P4IbZkM8266Rf9K3GLcKDfsfGz/"
					    "OdQS43rEDelp61ibzsGl7HnhpUvzjndmDk1Z7uuywRM4EwJWNSf6cC6WyawAYFHEkjFW1QOsA+BhV/"
					    "NxX7Rv5J2l+LANpFfZcPFah1ft6GlxnWI29DNEluecLcvg3n+jpxT8zTqWkzABM6agEX9WQ+vO2cC6xCQQGEP+blv36N/j/qILswB8XmWq/"
					    "R9TGdIG+KG6N9p7H7paCukK61rJb+jWFH04JwqqsWZTMAETEAEbpiCCZiACcxAAOEzKDglnNia8ltsjxXnDz1iKmabL1BbrAazjeKu/"
					    "Eed135Z0PkPin+isG01nP7Rz1oZneduFg5qn9VhWCH64EXbbBN5JR+c8hzSl1TNLKFsQTh/LQ83bOfB0tVv8kq4ybam6xT9qg/mpNOfLtHfrG/"
					    "MecmcGlOf85qACVxhAhb1V3jw3XUTmJEADxJ27qePYosHDhFH4SFPheRHCKaVUB0u7l6oXWzglwXeJlMJdMUh9h8qxKY290mRCLw+"
					    "dzAHtU8b3Fzc03EQxgphh8tvnA7py2VtM/"
					    "yVbdx83FQY3sijEPt5CPSvM1RfXEVst4RbVafKpP30iW9IUzw3JvSHebLkg8klcyrY5D8mYAImMETAon6IkNNNwARKCLBq/LknI6LpvcRS/"
					    "tYWtrJUK889ZWdJigLu51gZNxJNe4nrW40lP2Kvzx3EQTZSHmHaXOlG3PN2FlbCdzP0hWoOdrID0cuNEL98JMcrIBH5PNCc34Sk9NlDtVPEraXhdJP"
					    "2perg5iQ5xPaPinueIhYKS+bUQk27WhMwgXMjYFF/biPq/"
					    "pjANgRuqdkgOJvNSxixIo8Yrgl4xfeu5MZySXTl1dLWTulhZThP0DHCt2ulnYdMk2hvu6GgrZqNjboR1ojHPncoh7TqXf2CEBvDtvyG6NC+hGrFg/"
					    "Z4Vzu/"
					    "CiQ2Ia3wD792NIVvuvFpZaV2mA9zjiumlnIjb+7Cr0SyqWvO5HlrxzOwo76SOVVr1ycmYAIm0EXgRleC403ABExgJgIIaP7hTqvo72pD+dtE+"
					    "07xrA7zXzlH/YMr5Q/"
					    "tK0RQIjgr4aw4hChxfSvLnYJd5UpcCYeQJ69MtmEX9lVbRGboS2oCgf1M9Y0W9CqTOL5LlcUwCfbWOlVu1nGNbRZxa9jJKba22tmStxk1mV1W0aFzK"
					    "qvKhyZgAledwPWrDsD9NwETmIXAZ9WC+Kw5CTji8JUgrWXY5oRV2earIblR2MnePoFHP+hnn5vMoYcVghXb2m44pvYl9YF+t9Wb0vtC2q62BGUZH+"
					    "sYvuF5gCx+kcOJ3OD5RTRoav8PYZdYlMyplNehCZiACfQSuNGb6kQTMAETKCOAgEvbLqoSEk4X8pxfVJHZgdJW23edNYudTfHONowg7mQTD8y+w/"
					    "asDIesqg4J1ckcVDd70XHNNqq9/rIJIYmQTnlG9UXlEJEv5NkzzjEC/K185ZTnWTxhnzzbWmgzHGftkoVV7pogVjpCGb/3n1kVt7RLTFI7fdzIg/"
					    "24ohvOmdldtlw2p1JehyZgAibQS+"
					    "B6b6oTTcAETKCMACL5y46sbHNhVbfmJJIQjEMr37UyM53UxF8UovdVdxL6dxXXFPQ0jVBNeThvc5M5xDYRyQj14BSHoEYkJ8H/leJy+/"
					    "PjndLI29oXpSHieSsN/06cMaEt8lfCXPEIeh5oZmvTLXnyckyd5A1OcdSFneQJLsbxkO83Oh7iFEsdHqgtxmosNxrmhman8lX/"
					    "OW9zyjMbu0b9JXOqUcSnJmACJtBOwCv17VwcawImMI4Aq70Iuj0nQYTI+"
					    "xavRFaIcYikV4pDkK3teLDzTbSHd8AjjBFX2IiopS9tjpXd1v3gWeZDOXDzg23YcVue+lhxTraxjzt3Y/"
					    "oCf55taN4I5AKcX1ZSOmOUVrF5d3+eL61y85aefGWf1z/m+XJblzwu5ib7YMgNSbhJ0Tl95E03fc9ozMku51Ayp/"
					    "L8PjYBEzCBTgIW9Z1onGACJlBKACEnv5P/guNmOcUhPo/CyRZuJPZ+OeiICzarTFg9V9i7qqv0gziMtW1k/keNPiIoa/1RfdXDw0qrBCf9CiD+/"
					    "BO2tiieG4A+MfxniQWPxnBQ3qEbszZL52QX6pcdRXOqzRjHmYAJmEAbgettkY4zARMwgQkEWM2cIpjGNoUoX3uFn5sS+lfi1uJQYkvIIwHJqjs+"
					    "rcITjzBnhZp3ypNWOZ2zil2t2us8CNAqQ8t++"
					    "ixt6iFjij8qF9nMyS71b8ycSmUcmoAJmEAnAYv6TjROMAETGENA4odVXl412RSAY6oZzKv62UKSrygPljkkQ+wP/"
					    "SpqM+ZbnMOYPsmmmmDWOaI9rdSzCr1THDb/Hut9rDC/"
					    "Aah+aVEeBC5jnP6RVyxyWKB6Vx3XUmtl12zsUpuqE37FcyqVc2gCJmACfQRu9CU6zQRMwARGEmBbC3vrWQU+F8ce7LG/QBwjB2xiDzwPy37mWB7x/"
					    "ikJV4W89Yc98mEvfTzWae0fTPHQLK62decy6mz/"
					    "zsUuAZoyp1JZhyZgAibQSuDay5cvWbHhQ543PuQrM60FHGkCJmACfQT0OcIq5EOFm++17rOzJC2KWt4GM/"
					    "qz8Zw45KzUL1bq7yu8SqI+R3DQsbhx0zRpTh3UsAubgAmcJQF9pvAaZt5Uds2i/iyH2J0yARMwARMwARMwARM4dwK5qL9+7p11/"
					    "0zABEzABEzABEzABEzg3AlY1J/7CLt/JmACJmACJmACJmACZ0/Aov7sh9gdNAETMAETMAETMAETOHcCFvXnPsLunwmYgAmYgAmYgAmYwNkTsKg/"
					    "+yF2B03ABEzABEzABEzABM6dgN9Tf+4j7P6ZgAmcLAG91YBXDr+RvyPPO+THvi//ZPtuw03ABEzABMYRsKgfx8u5TcAETGA1AhLxv6ixewr/"
					    "UBj+IdRqjbshEzABEzCBkyLg7TcnNVw21gRM4KoRkKB/EPvsf/Z01Qbf/TUBEzCBEQQs6kfAclYTMAET2IDAV2rzV4n7iw3adpMmYAImYAInQsCi/"
					    "kQGymaagAlcWQKs1HuV/soOvztuAiZgAmUEvKe+jJNzmYAJmMDiBLQazwOx38r/Kv+bPGKeh2Vfye855Scv+XB35Z/PvaKv+m6q3qex/o86/"
					    "17HldP5Dzp5Mne7VQM+MAETMAETKCLglfoiTM5kAiZgAssSkChmRf6jPMIc/52OEe24vZV6pfPg7FvyxbyI65SfMnO5F7F+2qvVr3jE/"
					    "kOF3ho0F23XYwImYAITCXilfiI4FzMBEzCBuQhIFLMajihHzLNKnxzHvzRFs85Z0X+gkLfjJPdcB9TR6ZQfUf5Mnjfq5GVbyygPvxL8HBPZ2/"
					    "+5kZG4wXoaZXxqAiZgAiawAAGL+gWgukoTMAETGEkAsX1TIrq2tUVxrN6/76pL+Vk9R8j/"
					    "pGME9pB7rQzPlLdUiPOAbsr7SGWb24Cwrxk3ZIPTTcAETMAEFiDg7TcLQHWVJmACJjCSAIK5tsVGYprVe1bk995PrzRW8Nmeg6hGqH9SXG1rjOLa3E"
					    "NF1tppy5TiVGfYVqOQdrCnuulQHLYRV1yf8tqZgAmYgAksRODGQvW6WhMwARMwgQICEscIY3xTvCP0d0pvFc2KZ7sN23UQ3ByzAv9K/kLHwemYel/"
					    "If5Ln+LH8W/nKKQ/bcXA8aMuNAcI/"
					    "HCstbQX6WnHN12qSb6c8aSWfUzsTMAETMIGNCHilfiPwbtYETMAEGgSSgE7R1X51CWceRmVlHBH9rTwiPTgdt269UTwingdvX+"
					    "uYFXZuDtgjX90kKB5B/14hq/635MnL8X158iZH203xjn2hLpV5Kk97diZgAiZgAhsRsKjfCLybNQETMAEISAxfKEAcB9Ee41gFR1R/"
					    "4FzuK+VLoj9tublM0V+lkf/7WFeKZ9UdwZ/"
					    "KhXid5+L8IktHlKdfC3hFZb6Xv1kHtiH8U113lZ9+2JmACZiACWxEwNtvNgLvZk3ABEwgI8D2ljcSxqyc35Zniwwr4azKE8e++"
					    "eSe6OCB4nmdZFodR5x/kzLE8JFC6k2Om4FqlZ5Ilan2yOuU9FCH4pNYJxuO7T3Yx40C78VH5N+TT/"
					    "Zhr50JmIAJmMCGBCzqN4Tvpk3ABEwAAhLLrHLnAjyB2YuLgrspulP+ECoPYh+fr7Bzk/BjTNsppM3gdMzKe7Vqr/"
					    "M78lXZmHfPFpVpi7us1H9NwARMwARWJeDtN6vidmMmYAImsDyBKMKboj2t1LOCv1MehPvv0RoeoK1EvI5ZmbczARMwARM4IQJeqT+"
					    "hwbKpJmACJjCCAKvovB2Hh2U/cyyPeOf1lwh+VubfybO9J+ylj8c6tagHgp0JmIAJnBIBi/"
					    "pTGi3bagImYAKFBCTQ2T9f20PfLKo8+T783rzNsj43ARMwARM4LgLefnNc42FrTMAETMAETMAETMAETGA0AYv60chcwARMwARMwARMwARMwASOi0C+"
					    "/YZ9lk3r+KckfrtBk4rPTcAETMAETMAETMAETGBFAtLk/OPBO11NIup540G+rzLPm78NIY/3sQmYgAmYgAmYgAmYgAmYwHoE+F8hne7/"
					    "A9LmuNjm6wJzAAAAAElFTkSuQmCC",
					"text/latex" :
					    ["$\\displaystyle \\left[\\begin{matrix}K \\left(P - P_{t}\\right) - \\left(1 - \\beta\\right) \\left(c^{2} "
					     "dv_{dy} \\rho + c^{2} dw_{dz} \\rho - c du_{dy} \\rho v - c du_{dz} \\rho w + dP_{dy} v + dP_{dz} w\\right)\\\\u "
					     "\\left(- c^{2} drho_{dx} + dP_{dx}\\right)\\\\dv_{dx} u\\\\dw_{dx} u\\\\\\left(c + u\\right) \\left(c du_{dx} "
					     "\\rho + dP_{dx}\\right)\\\\ds_{dx} u\\end{matrix}\\right]$"],
					"text/plain" : [
						"⎡                     ⎛ 2            2                                        \n",
						"⎢K⋅(P - Pₜ) - (1 - β)⋅⎝c ⋅dv_dy⋅ρ + c ⋅dw_dz⋅ρ - c⋅du_dy⋅ρ⋅v - c⋅du_dz⋅ρ⋅w + d\n",
						"⎢                                                                             \n",
						"⎢                                     ⎛   2                ⎞                  \n",
						"⎢                                   u⋅⎝- c ⋅drho_dx + dP_dx⎠                  \n",
						"⎢                                                                             \n",
						"⎢                                           dv_dx⋅u                           \n",
						"⎢                                                                             \n",
						"⎢                                           dw_dx⋅u                           \n",
						"⎢                                                                             \n",
						"⎢                                 (c + u)⋅(c⋅du_dx⋅ρ + dP_dx)                 \n",
						"⎢                                                                             \n",
						"⎣                                           ds_dx⋅u                           \n",
						"\n",
						"                ⎞⎤\n",
						"P_dy⋅v + dP_dz⋅w⎠⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎦"
					]
				},
				"execution_count" : 16,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [
				"K = Symbol('K')\n", "p = Symbol('P')\n", "p_t = Symbol('P_t')\n", "beta = Symbol('beta')\n", "v = Symbol('v')\n",
				"dp_dy = Symbol('dP_dy')\n", "du_dy = Symbol('du_dy')\n", "gamma = Symbol('gamma')\n", "dv_dy = Symbol('dv_dy')\n", "\n",
				"T_phi = simplify(T_1[0] + T_2[0])\n",
				"L_outflow_x1_upper = Matrix([K*(p - p_t) - (1 - beta)*T_phi, L[1], L[2], L[3], L[4], L[5]])\n", "L_outflow_x1_upper"
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 17,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "iVBORw0KGgoAAAANSUhEUgAAA0YAAAC8CAYAAABcxb76AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4Ae2dXdLdNLaGN6lcd6VDVd8fmAE/"
					    "I+gwAyAjSHoGULni3KVgBsAIAsyA7hEQmAGc+64i/VVPgPM++iQje0u27O3961dV3rL1u9Yj2fKyZO+3/vjjj52dCZyawP/+7/"
					    "++o+23U9fr+kzABEzABK6fgMeQ/TY0k30mDtkOgbX6/0MV9J6w/VxB94PiP6nEOdgEFhFQn/"
					    "pMGTGKJg0jpX2idI+0vaPtXW3fK+yf8jfvzGbzXcAATGDLBHi49rG2r7YMIekuDs3jasoz5nt8GaPjuAsl0HRNUN/+VfJzT7nnFPfWgyyUi8s/"
					    "BtvXWbx3TeBgAup0H6uQt+X/0FgYhhAGOv3zc20/NubbQjKz2UIrW0cTMIE9AhoTwgMy+c/"
					    "3IjcWIAZzx9UWQh5fWig5zcUQmHFN+FJCD+2d7p70YabR1yp08gl+lv6ku/HE/+WSZawBkcyfaVv9qdYlMWnRUWmY+Xkh//0aq0J4nhYL/"
					    "66QZqtBZrPVlrfeJmACO40lX2n7Wdt32lYfG1QmBsdZ7zskw+j9g+"
					    "KXjKstvcfjSwslp7koAjofJq8JSvPNUGiFEcT5vssNI46P5lQpS6Kw0KgYoX5UWGehaZ/"
					    "lfNz4coEjXed0zBOh3+TvGW4Ko1xmEvApl4sjF4rH2nCfl/LdR7X/"
					    "HlKP8tJQGJ49vdpr30+psqpMSK14WMIkuUcKO8g4U364fqrtH9rPL5o7ytY2pSNW+qxZSJWZtzn5J5d2Kg/pWFbwvvZ/"
					    "kX+TzmyWN+tW+"
					    "shSQuazT67GROEnGYP2JTpOyBXqyZiSngCvBkUcRsfY1SqaKEhyTI2t1XFVeYPRFKvgngD3TOHcJ406pTnJ2Kt64Mw9HPcPB92jjCp0AZHS7+"
					    "bvTWo6KvyU18mDrgkPTtVXBIVp75+03WmfG+vcKAIY8f9DnPzO6ZgT+yP5xfdKYvj3SoPhRLkYQvjcQHNir7L0SuVR/"
					    "yH1MC3NSXGwUzlTTHhv7InSfZM2HTNTQ75FTnkpkwsYZdTKmdLxU+RZIoDy0dFp22I/GJQZjC+lvXijKOo1EH/"
					    "e4a2ymUdhduqr6SOzNVsnw03zWXjeFZmorEPHhnVarFDKFvSUjowpjC21calHpoVJLKt639Er8DQHY2Pr2Lj6pXRh3GTjnuiNtto75UVNlI9+"
					    "f7SxV+"
					    "XTfjzIbhnbizIeKzDqvmbxxWvImhVcQFlFHcXyZNfJ2KearwlDZiczjGLFH8nvdX4pwJP9nXxOvLuYLveqT0OyRHvlxrjf5aenJFnyxbuL65Fu6I2x"
					    "0nTxnpBwislT1dMZINrH8Hwtv8R3oqr7aOVlOQFPc/KnSL28iq/qqDhmCqt5ewUNDpQXfekfyBD6yyDJ8JC6ev1smOCCjg/"
					    "qnzfO5pjNdE195JgcamXfOp8l590Yk8VjQ60BVgrfip6MLaxmaHEtTKbG2JZ6Vkuj63xxbFU4fXJsXH2uNIz/yaEXL6jzoHPSKd3Rx17VEdpD/"
					    "iU+yGzpK5McswRj15As2VXvjul4yuvknGtCD/jD3tHxDzhBw4xQPBnYf6n9sRt2jIneLFJBTMp9VggnXzczVYifG3RoPeHitoJMVSaR60/"
					    "yMSDe1kYnZZaut/RNYcdyNR1rJ0Qnh2TkIowxS38IS/8UxtMtLuKfaV9eGAR60+0Kx9h8oY0vjbD/VNsrbcEpnnajjA+1H5biyaeunXym8FdzKi/"
					    "Jgh4faqN/H3zBVxmnZIMOPGlk5pX9/9PGssSxAVhJ2l0slzY7Oiekyupr7iMxH09qQ5/heC2XybOnv+KO1l9V9l4/"
					    "QqdMnmvls3qfnWIy6AuHjg2D4vqHkuWYfSJds4pt35dkdzQ9Kzq2tivjDmNM90BwIPfcw7ExtngOza2gpC9lKLx2zSmNrVPjKvdAr6dkU517Oilsjb"
					    "GX+w9kZOUOs0K0J1+XZXxJ4wl96p86ZkUKjutteBAajrKfTE7ubXY6XnX8zqqatZvJdaeM3WsLCh89txS/"
					    "d15TscJrfWCWXMPEmTx7484wbetxVuZZrx8FeRdfEx4UCjtKkOClJxTpBOCk+"
					    "13hdKSiUxzWejWeTDENnQ8IwRGmjWVv1LXKTc1K9bCUkIvEYhflGGMSLjKqAIOQjhqMyphvcb0zMtZ0/CDKUyxK8iEr751h9HAh56Z5p2NuyN/"
					    "KNi6qnVM4bU9fYn0ygyL9gL4W+kOMf08+5fJpV9LjkLP4NEhpuGhT5hL3L2V6Fet7qX2OD3Iq69RsePIa2Khu+hoD2NqsTslpUR+"
					    "R7vQjzqeqU5qlfaWov8pD1ln9tSrcIEJl1/rRLfBp7rMDLMXD2A7V60qeSWk5N2DYPAYpT3O/"
					    "ibIcq0+Mtv2p9BzRsbVd6dvFa1SuQ8t+bM+7UlrFFc+hUtqxsJq+Ch+75pTG1qlxleX0uS7cD/DaQfewTvtFnRR+0Ngb9X8s/"
					    "3tt33KsMhmHkRk9k+OeiHu2sPRf+xhRYfxPCfAVz/kY7hG0j0HEOZGMKZJ0TuHN51eXaeGO6qrxGz23lI/4vfNa4WN9IEh5gH7/"
					    "UgGr3Z9EHS7iOlloPtpl0TXhYaGwYwWlGwxOzK+1cRNL5+89/"
					    "ddx7lCKNbFjjnI58Z+rkVI6buSaXjBMGRr8pnokAzLztCMYJINykXNRQ2XlTDF5V3VTD1t4eqbjV9pHnlM8Xanp+Ej1F9tS8tEfuFinGwva7+/"
					    "aWhxPujCA09OnkEfH6cLPhZkLLk+uqAP5dvL5BDgzOiXHhRl5ZzmVxywdSxZT3cjE0yO2UO+sApVY+U7ORtWmJ3xJXPpPj2+KkD+"
					    "blXQ6NadFfUS6cc5PPW1dVX/Vt6S/Ktu4m+hHV89H2s/ps+Ow7mOnmORlNI0NeQbtz+k3R+kTUZ5L0bOoo2RsbVfGlkPH1ogklLM3Vk2cQylvq1/"
					    "Td+yawxgy1JFxak/WkhCS/z2FMw52q0cO1Gm078T6GNPRibE3zeZxb5bGSEWF+Hy85+Fnb7wpyEk+yqB/"
					    "pHIJS27O+ZXyzPYLciF30mWUj9It6QNJxtn6SdbVx10JM6Vjkhf/"
					    "2NfJvC72OS+G58swTfH4YTG0EiiwnFiAmHIswel1bGWgA3MDm27OMR6ea8OyT2HDcjnpp24oU7ljBlYoV/"
					    "WsIf9UPTQ+lmrJ9S5gC+VpYTKsm2ln8gW3sN6Ufcrv6Zgl5iJQa0ueCnYze5KPdFz0WlwvrzLAPxlYO5UV+"
					    "qH8pwpnFi04HdMXuLiU3HAwLqUphWF85gYxT8aQIegtHyNneKJ+oPChHEyjp4t9T79Y1lHZSEYYImvnVO/"
					    "wfE5xS1hNcVpyno5x6sVJ8LE+kuuN4Txsm6R38tfWP/WVan9VW5jP4HyObZq33S71WfkHn3ex/O66kho/"
					    "+s1jUJavud9kelT7BOVes541HaVW67WI69MjOORuIRPKCedhXpb2e9cRlU2acC3W/qxzcqBv3m/HrjmlsfVxRdae6KqPcYd7N2aBct2qOvUKKB/"
					    "08irJ8Lqa2NDXX6UiVH83fkW5dnlYLGd4T0hdz1IZ0Yd5V9Ygrvn8Svkkw8HXCZXR9QmVO8Unvzdp7QNJ3Nn6KePRx13V0esDSdjoIzM2wNQ9dJ5ti"
					    "Z4pf/GakCLH/"
					    "IdjkcO42HkRdIkDWH7TSBkvtWEY1d4zalGMcocnEWXvuRXkH61H5X+mStGRxmfZVncjHoXh4hROBo4Vz0k9l2eVicp7pPJ+p+yB6zFaWO+"
					    "gyOphT8dqqn4Ecndc+lH1o6jvMG84kWLcTj4XKhwMOuOLY8V1J6j205Q85fFUrbtQKY5jBiyWfoY88nufJtcx+dA9n2Ggvq4PKM2w/"
					    "+8UxtKAsT4w1E9FTjuVSb5h3hobBpigb8onP78JvMtrVFyVFekUzwAMM3SnP3bLORSHTFOclpwXQ11VTZCF8GFcjQN9pGt37XPMtYnlDt0ArP2q/"
					    "oob7SuKn9RfdeKq/TXKMtZn7kvo/w4ZhNgozzDuaHyoVHUe1D+iWs19VvXNOu9mMkEc2mp0bCCRyl3cb8gvV+0TRKr8a9Cz2vboINfcrvfJu9/"
					    "H2rvrjuLOXCYxW22MHZ4nXXWqZ8k1i/y06eQ1J1a0ZGylX5CPB9HhmhGPCU96nmLszXWM6gQP/bsxM8rGsjpWdOTXXdjn12COe+ed0o+dX/"
					    "SrD7QxG8WYRF/"
					    "BSOzOmXxfccEpbNH4rHzIx5azPdp1VfWN6hflWXXcnakjPHvtRUDJqdyD2jErs3hNyOKruw+qMStGxEajxPxma6dwbjLpoC+"
					    "IHDrFcyLQmEWneOLofL1yi4kPCGytJ+qzk8+"
					    "MWXdDnFWNvLXZpCxZfVfljjFJJ35XgNJjrLG866iMugrv26uk4xuloa1Kbk8nycsAOuqUhr7DFpyOuThw8qErT2tyR/"
					    "1sO6WjHagzOB1zIrIEkRt4+uRj+fkFjXSs7+aiulMc9XDS5Y56iQvyyKcOwp4RfoA7BRtkDmzk04c6Jz1g0/"
					    "WdeDzFCqMRVvQDHhJ0baTjk3KKdXf163isj0i8+4FM6ZDzUTwOMhOp8EP7Sqv+tEdoE9XZ66/IscAV+5HKhs2p+azRP5C5qc/"
					    "OZTWHSWwb+kl3jpTqU7pD+w3FrtonzqTnWNuj49J2pQ1Sf6CcxU5c9s6VWNheuNJOjlMNgoSxRmUVrzlZ/"
					    "tL9Azqje9GpTPJglMAdQ4PrH0Z8YrVIJ5VDO7EFF8tF/t7Yq3DqZyl57fwIxsJ9KeGXMtK909MsHEa5nt/qmP93Qv6d/Knzi5UZrMJ4pY3PsLPfya/"
					    "9pa7IT+U38ckqHe0DK+jXOu5kIo3vztFRaUM/UIm1fhAqW0HPXGj6S+rnefjk/"
					    "sPJFAcmkKLcmIcnFfIxGLrZIe3zdBUXvjim49JTN9am8gShd6Oq42q590Wu8zunHqWlIcZONjh0TygOkLDIROVx0eMCCBvkQB7SdjMjOl7kVAYdG9k"
					    "5wWgPBoRuBkX7ydV0pP0oo+SYWeGJVopH7pelhIWwlJcXADkJ6ENcUH9VeXlbIPtThYUbf/"
					    "lpqZqCg16Us1M4DLsnWDGMp1e8QJqeesFguMQKvUmX2GMYDJctKGi2S/odkw3MXkh2jD+YcZ7Svhg29J/"
					    "83INjlZXidqTXFgyqQV6iz8EpMZzqI88kH/0w6K19Bmj0CIOvfNyo/so71Vda9R/rr/eSzPtNDEr9KMUdnQ8i0ye0Hdo/"
					    "5vTZeaTuU08ykQ5zxqBD+w1Srd0nKPPUeo61PfIsbdfHyptfpyjrEIecw/uOxKp0Di2tq+Wak8rm2kEfyN3YuEo6zmnGU/"
					    "zOSbdUziE6pbxj1w3qToZOV3+2M4znxhnDhfHnZZYO3dO1mVcD+IBAXi76IM9O4aUxPI333ditdPS1Q11iUOoTKW6MD/"
					    "W39IFD9YPfMe9PqjqK85rXyTntuPiacArDiJvy4o25gNGx886twz3HCUKn6HVi5a2Wu1fCAQEz6+"
					    "Gke011yvdcW2pEjrkA4K9x8S4yieVzE5ffyBF8sIty99pgWOiEjsj04TAPx7Fs2ni2U14upKNPISh0Ih1t84Z0cuHCqfTDpZA8bUv1hIv0ffLuF4ML"
					    "o3+qP3cZWnZUHv3lnGyGYk6yksxhUJN/p40b4O/"
					    "YjwWdnJPqbu0jw+tRqS0n9ZeeY32lSf9WmYeNUztWedV+1FqX0q3CR+Uc3D9aZa7xmApvKV9p5oxBh/"
					    "abXYtMU3oN41vKXFNPlTXW9rsWeYY6xGM+KLDmuLc3xkq26jlUkWkyWGW2nFNwof/gD+8fquNqTP/"
					    "XMSFieUcbX1Q+8gWDpSSH4hlLOxfl2UvfIOfo+aX8PHznfO3Gbh337tE6IWbsjMmluJONO6prSr+mcWeG6iFpi45Ks9p1skHPXIXF14QHeSmXuB/"
					    "BMxWbLPJLFDPJFC7MkjU8DU2B0U8X2kHw/"
					    "MMLZjKm4ytpypOcS3TpKeXHUThme3jakLswExfb9on84SCMbslwyvNN7Q8Huqn0544fZSUuPB1ixoUPSODv5N/hR7eUU8p/bn9U/yjcWF+5dv2n+I/"
					    "yuaD+cerzbpRLQ7+Z4l6Lvxg9G9q+pkNLeDcT0JB4kolk5Vp+SfcdtbH1ksfVhqZYLcnU+cV/GHJfxkoPVo6w/"
					    "7qh9sm+0lDGGkkO1e9axp1D9cxZz7km5Pl2b33xxRcAYxqM9wYupRP0hORAsnFh6Jbh7SW44IB4EjI1v+"
					    "TGuapZzkT7tCPvxqxaR7XyQYTq5UIzqqPScKP8ifyhUTEo7bIOJS9GObMATEVjPDHV3z1li/HcDPeefl2WFueXZgucoo7FvrIF/Q/"
					    "pZVvmM9ZvDmG6hbyRHS/Jh3dA19RZZZ79vkMyjI6tir/KcXXNdnJZdQLqH9y/"
					    "bOr+JOo865oQzzM4vfWwjvOyYiQs60vDdPJlSdYkTb6UqClDS6KcifbPbWy06JieenVGRYueF5CGfscTp8fyeYrYk1/HPFCwUTTRUBvhVO0rG9F/"
					    "ohfUozfOp9pv6sQcEwnwlJmxZXWnPnkJ9x1TY+u1jqurt5cL3Cew0evqQdeEq5kx2m9uh1wjAZ2kTGXzcv/"
					    "Fzk5eI1fLbAImYAJbI6BxZHNPw0tt7HG1RMVhWySw9JqgfMzMhhmjB1sEZ53PSoAXK9PX3c4qiCs3ARMwARO4agKMJb0Z/"
					    "KvWZrnwHleXs3PO2yJw8DXBhtFtdYiL10ZW+Z2EZMaIl/TtTMAETMAETGA2gTiGePWByHlcnd19nOEGCax1TWheSqcK/"
					    "7hBjlbJBEzABEzABEzABEzABEzgRgnIhnlrTDXFd0vpmj++MFXoWIWOMwETMAETMAETMAETMAETMIFLJtBsGF2yEpbNBEzABEzgPAT00Iz/"
					    "i+CrarwIzyeT+Q+r6t8GKI5P3v8i/6wfYFH96U8RJY6dCZiACZiACex2NozcC0zABExg4wRkJGDYvIgYMHBwzxTOO4FTDkPorySK5fxHu8VlC4pP/"
					    "8lyVqMoyvqV5OErRH55HyB2JmACJmACO398wZ3ABEzABEzgSxkI/GcLG1+4eqONP/5uce9niTCqisaUysX44s+Rq7NJWTmn2sWoO8p/"
					    "4JxKAddjAiZgAiawHgEbRuuxdEkmYAImcK0EnstAYElcchgL7yjsvRRQ85Umn/0hH4ZVyRF3UZ/ql+wYaU/"
					    "kY7TZmYAJmIAJbJyAl9JtvANYfRMwARMQAZaTvZ4iIQMC4+Z3bcwKPdLxVymP9jF6mHH6JYUNfAyQ6rI1xVXLHpQzeqhyMPAw6D7UfmekaZ/"
					    "Zoe44KyQYRzr+IQvzrgmYgAmYwAYJeMZog41ulU3ABEwgJyCD4Rtt+RI4DJjfFNYZOdr/VWE/yscYwohK7yTtFIZRE4wi7e/9R5nCqkvslI/"
					    "81bKJb3Uqh5mf9+Qj48fxeCcfQymfEcuL/EkHH+UB3jcBEzABE9gmARtG22x3a20CJmACRQLRiODLcd27QwpjNghDKb0fxPK5v1OAwngXCWPoP9rn/"
					    "+5Ks0IYRry3tOeUp1r2XuLpgMdKgpGH/"
					    "MibjD2MotqMGGmQz84ETMAETGDjBLyUbuMdwOqbgAmYQCIgQwIDgdmf9zOjguhPtXXL0GJcmE3SfmdAkbDimMlJRsowyVjZzPQgz5T7h+"
					    "TAEArvO8l/qgwYXMl9qJ0f08HALxpsgzQ+NAETMAET2AABG0YbaGSraAImYAJTBGRMYBSxHC4sK4vHO/"
					    "kYGxg2+UcWpoobxqcyhuEcV8tW3RhfS5a5MUOUG0Ycv1R5LLMLBp2Ok0PvQ3RL5dg3ARMwARO4cgIPrlx+"
					    "i28CJmACJnAgARkLGAcYEvyvD8YDMzWfa0uzKRgTpOmc0rTM5IT0SruXvytIf/aq/"
					    "cVlZ+UMd4Oxo7oxipLxxf7QUTfvONmZgAmYgAlsnMDDjetv9U3ABEzABO7/"
					    "swjjofffRTIq0vtCLKNjNikZMKR9ORMcS934BPhwdmaNsoeiPIvyYvBQH1+c489lMcKGjhmppOcwzscmYAImYAIbImDDaEONbVVNwARMoERAxspfS+"
					    "EpLBozhxoPzDBRBjNRnVup7K48dlQmhhBbcvl+CiMdBh7+0Fjr0njHBEzABExgOwQebEdVa2oCJmACJnAuAjI++KId/"
					    "32UZp3OJUpebzLW8jDvm4AJmIAJbJSADaONNrzVNgETMIFTE5BRxIwRX5ALMzWnrj+vTzKwtI4/ffVsUQ7G+yZgAiawYQIYRn+J+id/"
					    "wzisugmYgAmYwDEJyBDpLaU7Zl0TZX8nWdL/Mk0kdbQJmIAJmMANE/hb0s0zRomEfROIBHSzdElLfdwuJnBzBHSO3Z1bqUuQ4dwMXP/"
					    "xCHgcOR5bl2wCxyTAxxf+GytI/"
					    "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"
					    "F+"
					    "mpCkttmMuxmf2Hm9F0WlEuctzApht0DAgMGp4ypLBhKdycjt1UpjLHjKtQpup4TzucLFOOJUTDG8HWejjBeKpUcnuGgerhxnd4sftA4Zx4uWN6PS0R"
					    "mGKS52OfJXXkCU7lHMIhFVPz93SMCbnY1tqRp4LdzJ7kI10yLmL2Ua+XXylpg2Rk7VReaEv5TxXeLa3UMRyGnBUU3HBATuFjPsZnbhAzS0b9QW/"
					    "5S9q6p1ssq5VNL69EaeIS0yFr51Tv8LbcQ5QAACAASURBVHxIccfgtKR/9nQdcOrFSfAxDrneGM21/nEs/VNfGe2r0s+MBudzbNe8/Xap38o/"
					    "+Nwb9pvUAaLfOj7k2ZrOnUyHqT5xczpG5sU2zUHGfa5Rj/"
					    "Lwhe1OGeE8zMvSfu86orJJE67F2p91Pg7aNNdv7JpTGltnyzrUQ8fnvh5KhDBuHnXsHOpJpZmbe/"
					    "42nbtZ+Wm31IYpblP+w01pO64sJ2De+Un9UhuGUe09o72LHZkyR5k1oypLFm5QuYjRoZe4yXqkw2cqGP0w/"
					    "liy1d2ExwoxgHo3mEoz5LFTGEvKxuQsMlEeLpK/x7pyrye70h3CIS+3tL+nYynRIAy5e1wG8dXDqPMwf7hoxbid/"
					    "LtYABw6A0z7TxTXGdTaZ3knjvKYXeoGLMVxzKDF0s+QR373eXLtkwfd8xkG6ur6gNIsaeuhbipy2kV5hnlrXBjUg64pn/"
					    "zOsFTcXV6j4qqcSKd4Hj7AC93pj8zWhTLkI9MUpyX9c6irqgmyED6Mq3Ggf3Rtrn2OuS6xjAmZgtN+VX/"
					    "FHdxPYjVTffVqGaGfOB3URyKj5n6r+made0o/"
					    "p98gDu01OQ6p3GLfUfhov4n6TvWJi9Yx6rCTrtW2V5rmNk3lZf5j7d9lx9Q1i0nMWxxfFTe8jnRVqZ4l5yP5adPJa06sqDS2zpJVcs7p102yqcxin0"
					    "ZmxdGeH2hjCTxjAe3D8viuXbSPTFNjQpdeaYNTvup9Uixz2F616z7lTZ6/KvMgPe+lDnouuteJ+W/"
					    "GeyBNAEHDvrkZrWYqok7FCYLLb7h2Cucmk5PlBZFDp3guOJw0e05xhNP5e2XuJTwwoLWeqMtOPjNO3Q1xVj3y1maTsmTjuyq7xiRdgLoClBZjjeVdR"
					    "2XUVXjfViUd6fu0Vcnt6SN5W2b2dkpH32ELTsf0My5y6MsTvtwhAxv5aAvqDU7HXPRYhshNPH3ysfzhBYz1weEdJ8VRz2NtyVHnTuFBFvmUT9gzwg9"
					    "wi9hEOVq5kC5wkU8f6pzKgUvXd+"
					    "LxFCcMRjjRD3hI0Mmh45NyinV39et4rH9IvHsDXemQ81E8DjITqfBT9RPaI7SJ6uz1VeRY6Ip9SeXD59SM1ugjyNzUb+"
					    "fymsMktg99pTtPSvUp3VTfGbu+UOSqfeJMOqLHWNsf0qa0QeoP1LPIicveeRIL2gtX2qZxakKQMM6orOI1J8u7d/"
					    "8wV1alhy9bcDo+9vWQ1S+sdHmljc+fs9/"
					    "VH4Q4wpgwR0+lhSt9p3r+Ks3UuduiJ+rutSGBG3IwDkbuQ+0Ag6cCBA47hYJu26lTcXOOtY7DaOhmh7TPkzJc+OqYjktP3XgvhA8qdDeq2q+WeV/"
					    "cOr9z6lFaTq6x9oXB3pOPhZLuMVE5XOQYdGCDHMhDum5WRMeLnMqgDyM7F2/aggGhmz3RfnI1HWk7yig5ZlZYVpnikftlKWElLOXnhVIGRvrQU22/"
					    "qsy8PZD/qcLCzb/8tDRRwUE3ytkpHI75zA9hvI/0vcLT0z045Mus0Js0iT2GAU/"
					    "G8voVNNsl3ZawSXmnuMDrhWTlxgx5OUdpXwwb+k933hGnrcpJcTvSawsG1SAv0efg1MrhmeSjHwa9tc/DDfTghii5Uf2Vd61+MtZXkyxz/"
					    "cSh1JdS3FRfOZgRQtMvtB3aR+b027msSD/JRDrMGYeqfUflTPUb5Dlmn6i2+1o6ogBO5Y21/SFt+ljF59eqUN/"
					    "CH2Ts3XOonNQfSufPwmrCg7Opa04qm2snfWDo5sqa9Ki2eazg4HNdDNMY242XCqONc4dexxw7q3pKltbzt3ruokijniSttSFxW3D0A+"
					    "6hvnm4BW3HdFSn4ca8eHOuOG4+SrMreZHcpNExuxNqrMw846H7M+uh0cMNtfI915YuCjvtc7OPv9aFe49JLJ+"
					    "buPxGjuCDXZS7418qcEJHZPqwkg8mpQt+KflemOrlgUP1aU/KMJGO9nkT04aLuNIPl0OypCrVwwUu54GxhcE/"
					    "1ZdjFW2eylvMJsqa5K1W2JouFjDJSeXRN8PDD+1z8/udfAwu3Mk5teqndMNrUaktJ/"
					    "WXjgf3k1aZA9HGH5VZ7Uut9a3FSOUc3EdaZW7Es5espXylqY5tewXeP6gau8aM9ZtdizyFOkeDWspcWUf0qLZ9izwjCvGXFGuNfXvjq2Srnj8jMo1G"
					    "qcyWa85O6bju4CPD0M2SVWW0jpctso1eD1UXD7w5R7rxUse9eyPFHWtMmNQzyla8Nx1APlhP1TXWhoPqbv/"
					    "wwe2reFwN1aHo4HzZKz2pOW6Fy0sPF2XJGZ6EDopJF69BcPGwdPHrJbxQJmM6vpICzMRcqsPIYdbk4yggMz48gcxdmI2L7ftEfj4Io9ukEZIXFvcn2"
					    "7qQ55xBo5zEhCdwzLjwsRD8nfw7/OiWckr5z+2P6h+FO0Y/"
					    "Obfec+ofZXRBfeTU594oFwEe6zdz+OdpL0rHhrbPZZ+7Hx5oNWSaZCI5L+2eozq2nlnWqT7N/wZyP8TqClZrsP960EZLx4TJdhzUc8jhGnpW2/"
					    "AQwa4171tffPEFDc90HmvzT9mY18qsKLfY0bG6ZXjFRBcYGC8GTHcvuXEe1SgxUSKMRt6LWb2OUQFiZIuOSsON8ifyc4Oipfizp5HM8OWJLlP+GE+"
					    "slw6zXDGOmxqeitlVCGyBU9TR/aTSB6aCt9BHSgzG+k0pvcP6BCI/"
					    "XsYP74D2Y5cfqbyz33NIBoyJyfuHS5B1LmnJzLh682NnaxvO5Xdt6SMH2vutzS+lW6vxBJO1uGE6cq0yT1ROvpRo1SoTE/"
					    "nnNjZadExPTBYvm1sV3rzC6Hc8/Xosn9nLTgft87DDRtEEz41wcj+Z6Adj0RvpIyUE1X5TSuywPQI80Wd8WdWpP17CPUfL2Lq7EFln8d/"
					    "Q+d7UhrPgXXlizxhdeQNa/"
					    "PUI6ELIlDov93vmdD2sLskETMAENklAY8kmZh022bhW+"
					    "qYI6Fxl9jPMGD24Kc2sjAkcRoAv4qQvux1WknObgAmYgAlsnQDjSTeDv3UY1t8EroGADaNraCXLeBICemJwp4qYMeIlfTsTMAETMAETWEQgjiNegbC"
					    "InjOZwPkIbPodI124/"
					    "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"
					    "14ZBxAcYXmoLTmn4U9fn2t7W9quOvwkR+tH+r/"
					    "L449cfUph9EzABEzABEzg1Ac8YnZq46zMBEzCBGyIgY4aZoZ+"
					    "1YdiwfaV9jCRcPmP0Isb9pPAUHxLphz8Yf5oO7JuACZiACZjAOQjYMDoHdddpAiZgAjdAQIYOs0Dfa8MgYrYoOfZ/"
					    "UVh4v0g+s0cYRLjw7tH9bvf7THt5/"
					    "i7COyZgAiZgAiZwKgIspftLrCz5p6rb9ZiACZiACVw3AWZ+"
					    "Hsnw6ZbFRXWYRcqXxfERBj7hjftUW7fELoRMGEXKSz2faeMT4KmcmNWeCZiACZiACRxE4G8pNzNG/"
					    "40HyU9x9k3ABEzABExgjABGTr5cbifDhVkk3jnq/"
					    "r9IYWnm6GOFE79nSClNbkgpSc99zZHS2CjqYfGBCZiACZjACgT+ncrwUrpEwr4JmIAJmEAzARkpGDhsnQEUM2MsYcT0DKYYV/"
					    "uENx9kGHMYVKXyxvI4zgRMwARMwARmEfBX6WbhcmITMAETMIEBgeG7QRg/"
					    "YWZHxhEGDe8apTTMJPVmfWKaMCOUylUYBtcLbXytjn0+zPBKW+eUhqV1uHe1sdSOusJ+Vp+"
					    "C7EzABEzABEygjYBnjNo4OZUJmIAJmEBGQMbHnQ6ZxcHYCU5hGCd8aOH1fcjuo4GRglGUp2f/"
					    "nTyN9jGE+Mrd19pnyR11UGY3Y6RwjKIf5PMFvMfaSMv+B9pIa2cCJmACJmACswl4xmg2MmcwARMwAROIBD6R/"
					    "200VFgOx6wOM0ZfxrDhTBBfr8OI4Ut2YQme9jFocsfszz8VnmaZQpyO85mmuyweQyot53s2SJeX630TMAETMAETGCVgw2gUjyNNwARMwARqBGSEMGu"
					    "EcTR0pbCQRnn+MUw8OOYdpTw/X7jrZotIqzLyjzcQH8pUeG48kdTOBEzABEzABJoJeCldMyonNAETMAETOCYBGTbM/"
					    "rDls0XMQP1IXIzvRNAxy+a62SMdd8v0ukTeMQETMAETMIFGAjaMGkE5mQmYgAmYwHEJyLBhBootuGj4pBmj9LU73kn6T0zCRxlyI+"
					    "rzGG7PBEzABEzABGYT8FK62cicwQRMwARM4IgEWEbHu0h8gOEN+"
					    "9owgH5NhpP877TxAYb0nhL7OBtG9xz8awImYAImsICADaMF0JzFBEzABEzgOARk8PA+Ue+domFNSpO/"
					    "pzSadpjXxyZgAiZgAiZQI+"
					    "CldDUyDjcBEzABEzABEzABEzABE9gMARtGm2lqK2oCJmACJmACJmACJmACJlAjgGHEi6ssS2Att50JmIAJmIAJmIAJmIAJmIAJbIUAS7LDEm0Mo3e0"
					    "8Sd8/Hu4nQmYgAmYgAmYgAmYgAmYgAlshQBfPw1/"
					    "SO6ldFtpcutpAiZgAiZgAiZgAiZgAiZQJWDDqIrGESZgAiZgAiZgAiZgAiZgAlsh4M91b6WlracJmIAJHJGAPqH9nor/VhvLs/"
					    "mfofyT2kes2UWbgAmYgAmYwDoEbBitw9GlmIAJmMCmCcgQ+kUA3pf/h/zwx6ubBmLlTcAETMAEro6Al9JdXZNZYBMwARO4TAIyiniBFec/"
					    "Xb3n4F8TMAETMIErImDD6Ioay6KagAmYwIUT+Ejy/"
					    "SYD6e7C5bR4JmACJmACJrBHwIbRHhIHmIAJmIAJLCTAjJFnixbCczYTMAETMIHzEvA7Rufl79pNwARM4CoJaFaIjyx8qY0/"
					    "Cf9dGwYRH2B4qS04pXmknefa3tb2q46/CRH60T5p/yE/fKRB/sc6pjzeU/"
					    "KMk0DYmYAJmIAJnJaAZ4xOy9u1mYAJmMDVE5DhwszQz9o+1z7bV9rHqMHlM0YvYtxPCk/"
					    "xIZF+XmjDuEoOY4jjD1KAfRMwARMwARM4JQEbRqek7bpMwARM4MoJyNBhFuh7bRhEzBYlx/"
					    "4vCguzPfKZEcIgwvHu0Zuw9+cPxlX39Tqlx6Diy3Z5mX+m1p7SfKntD22UbWcCJmACJmACqxLAMPpLLDH5q1bgwkzABEzABG6KADM/"
					    "j2ScdMvionbD94v4CMMPMe5T+V/H/"
					    "V00bDCw8tklol8rrmoYKT6UoTQYUHYmYAImYAImsAaBv6VCMIz+Gw+Sn+Lsm4AJmIAJmMCQAEZOz6CRoYKRwzK4fAYozRzx7hDxuSGFEXVXMHB+"
					    "VfiYo6xe3WOJHWcCJmACJmACDQT+"
					    "ndI8TDv2TcAETMAETGCMQDSAMHI6Ayimx1jaKb5ktLCMrltiF9MT1kurvCyP680Exfp4FwmDiXqfanulrXNK81k8eFc+"
					    "s1kYT2FfcWOzTzGbPRMwARMwARO4J+B3jNwTTMAETMAE5hIYGhzB+KEQGSMfa2P2KDn2h+lLYU+VrzOWtI8hxAcevtY+"
					    "s03EYTzlaTCKflA8H394rI207PMBB9LamYAJmIAJmEAzARtGzaic0ARMwAS2TUBGx50IYJh0ho/"
					    "CmKHBCHmtDfeRwnJDiFkgjJzgFMcyOoyYvAzChrNQzP78c1DWTsf5rBLL8VJd1JHKeKbw9H6Tgu1MwARMwARMYJqAl9JNM3IKEzABEzCBPwl8ot1vZ"
					    "XgwW8P/"
					    "E7G0jRkjvhhHWPeRBe3vFMbX65jJIRzDiv88+"
					    "h9tlJHCev9xpDjcp9qoKzmMp262iEDlH763lP4TKTeeUn77JmACJmACJjBKwIbRKB5HmoAJmIAJ5ARkjGDc5AZLii6FhTjlCQZLShj9sfTM/"
					    "rCl2SCyYHz9qLII30U52GWfGatu9kjH72jL84Z0/"
					    "jEBEzABEzCBMQJeSjdGx3EmYAImYAInJyCjBuOLLbho+KQZI2aSdgrD+"
					    "PnPfYrwUYbcEPo8htszARMwARMwgWYCnjFqRuWEJmACJmACJyTAjBLL8PgAwxv2tfFVOpbdBcNJ/"
					    "nfaWL4X3i2K+zoMafHtTMAETMAETKCZgA2jZlROaAImYAImcCoCMnJ4n6j3TtGwbqXJl+"
					    "iNph3m9bEJmIAJmIAJDAl4Kd2QiI9NwARMwARMwARMwARMwAQ2R8CG0eaa3AqbgAmYgAmYgAmYgAmYgAkMCWAY/"
					    "SUGJn+YxscmYAImYAImYAImYAImYAImcIsE/paUwjD6bzxIfoqzbwImMCCgdxreGQT50ARMwARMwASaCHgMacLkRCZwagL/"
					    "ThV6KV0iYd8EJghoQOPrV/xfip0JmIAJmIAJLCHAZ+YZS+xMwAQukIC/SneBjWKRLo+ABrKPJdXb8r9qkU7p+M8V/"
					    "oiSGaZ3tX2vMH81SyDMRhDsTMAENkmAcUDbe9qea/tmkxCstAlcMAHPGF1w41i0yyCgwQsD54X8OX8aiSH0gzYMKfKF/"
					    "1m5DI3OLoXZnL0JLIAJmMC5CMRx4R/yGVvsTMAELoiADaMjN4YufB9rY9bg6pzkPsp0/yUxadTxSzXe1zMb8P0sPe3PH1La3RMwG/"
					    "cEEzCBrRNgTGFsWdVdyvjaMrZeiqyrNsANFdbShjekbqeKl9J1KMo76hgsieJPBFlKxbT3jwr7QX5w2udf2bnx5R/Y8z8b3On4ucJ/k/"
					    "9bSJz9KIxymUnAp1xunHl69Fgbjn9838t3H9X2e2gdyv+Vtq+"
					    "19fRqq72cSmVVmZBD8bCESXKPFNa0fC1lGPrKD9dPtfGELr8p31G2tikdP1WaWQyUPm87Br9PhnINj5WHdBij72v/"
					    "l2H8rRybzfKW3EofWUrIfPbJ1Zgo/Ohj0L40xwu5Nj0l7zfa/qONsX6VB2cqZ3R8PR79/ZIly+jYuoasKmMrY2ZRT+l/1HN4qg33W/"
					    "02Qh7chhrH00Idg/dCftJ2p31urHOjiE5J/P8QJ79zOuZm/"
					    "CP5xfdKYvj3SoPhRLlcHPG5geam+uClVyqLug+tg2VPnJQHO5UzxYQPGzxROgaMsOmYJWzkW+SUlzIZLCijVk5VR+XHIM6NHB22O+XnqSBtW+"
					    "wHg5LCrJTSXrxRFPUaiD/v8FbZzKMwO/"
					    "XV9JHZmq2T4ab5LDzvikxU1hrjwzqtNihlK3pKbcYWHtqNuhYeSjM6vo5WcLzI4ti6oqzFvn08dQ4vuaUtC7UU9VRZpziHi21YkPFmgmwYtTXlR0rW"
					    "u7FVhwzLzOTXnvZgTITOPFLFXrkx7e/ymTlZwx1URzzxMFZqRsUcGaeYPFU93cuo2sfwfC3/bk4leVrl/UUbM05V40bxtG1Nxxq/vJrivspFX/"
					    "oHMoT+Ukz4ZyBGWK+f/Rl1cXsH9c8bZ3PMxrqmPnJMDrWyb53PkvNujEnt+rbmGFRrq7HwrejJ9Z42mHItPKbG16k6Vo/"
					    "Xdb42tq4l61jfXl2flQpsacthVWN6HvUcHmnDoYw3c/zwZjQ5riLcoIcZIXUSOjX7L7U/"
					    "dsPOjXZvFqkgIuU+K4STr5uZKsTPCVqjjnBxW0GmKpPI9Sf5GBBva+NCwCxdb+mbwo7lajp+"
					    "oApHDVzJyEWeGwn6Q1j6pzCWWDJb9Zn25QXDrLckUOEYmy+0/aqN/afaXmkLTvG0HWV8qP2wFE8+de3kz/"
					    "kQBFlGncpLsqDHh9ro3wfPXKmMU7JBhy9VJzOv7P+fNpYlVo1ixc9ysVza7OicECyrr7mPxHw85ZtcvknaOS6TZ09/"
					    "xR2tv6rsvX6E3Jk818pn9T47xWTQ3muMD4Mi/zyULMfsE+maVWz7P6UIe0fTs6Jja7siO7Kt4arjK4VLzuI5NLfikr6x/"
					    "No1pzS2LpJVdY+2+QLZ5qq/lz6Tae+auJe4MSAr86x9OxO31IZZ9G3tPrgtddbXRh2UG1Mcn9hkSdbP2n7X/"
					    "h2BJac4jKdqPHliGk5yOlxwhGlj6Rt1HXxTs2IdLCVseap1r0jhN8oyxoTBARYYhFwMckNUh0d3NR1poze12qUXsvLeGUbPa23cNO90zA35W9nGJ7s"
					    "7p3DKpS/xfhOzZOhOXwv9IcbzSVfK5QMepMchZ/"
					    "GJk9JgFFDmEvcvZXoV63upfY4Pcirr1GxYkhLYqG76GgbR2qxOyWlRH5Hu9KPRmy2lWdpXivqrPGSd1V+Vvsmp7Fo/"
					    "ugU+zX22BVZsh+p1JS9DaTk3YNg8BilPc7+JshyrT4y2/"
					    "an0HNGxtV0ZW4rXqFyHqf3Ylne1dIovnkO19LXwmr4KH7vm9MbWpbLGuqt9e6FsQVXlbe7XBTbFa2IhXVPQlJ55IUo76xw+QM9eG+Yy3OL+"
					    "w1tUamWd0g0GN+rMHHATy81v7+m/jnNHZ63eTMeElMuF7Lk6awwKN3LPdFy9wKWEjX5THfHkYslXMEYKZSPPoRfvKSbvRr2pKyyn0/"
					    "Er7SPTqrMjKq/kajo+VuJie0g++gPviKUbC27E/"
					    "14qvBDG0zsM4N5sho7TLA318p4VM2fUEWSQzyfAmdEpOd5Le1SKGAtTeczSsWQx1Y1MzHyxFXUfK4845Ts5G1WL8Z6/m0f/"
					    "6fHVcXKzWUmnU3Na1EekIOc9RvqYW1V/VbSkv47JF+Im+tHV85GSc/"
					    "rsJC8lmGKSl9E0PuQZtD+n3xylT0R5LkXPoo6SsbVdw7V2wHjJYXV8nTiH5tZV03fsmsMYkt8/LJV1qs2XyJb0n9OvU57dMcYEFT6lZ1e/"
					    "duaew4v0VD3DNsxluLn9hzenUUEhdd73FExnm3IswRneSHGB4wY23ZxjQGDM8IQhhQ3L5eZ06oYylTtmYO1Uxxqyj9YhWTm5eKJUcz0jb6FMLUyG9b"
					    "OkjnzBLaw3ZZ/yezpOJY7xPBXsZvYkH22ejIupInp5lZg2SAbWTmWFfij/qcK7ZZU6pj9wcSu54WBcSlMKw/"
					    "jMjWKWDyJD6MPyMXLygY3oDxQ+lIOlFOkdsZ5+sayjspFMMETWzqne4fmc4pawmuK05Fwd49SLk+BjfSTXG8N52DZJ7+SvrX/"
					    "qapLySwAAEaRJREFUK9X+qrYwn8H5HNs0b7td6rPyDz7vYvnddSU1fvSbxqBCnqm+FbJkelT7BAmvWc+"
					    "ajlKr9Vr0WGnDuQML3EIej5S1V04o7P6ndx1R+aQL12LtzzonlT4fl/"
					    "J+O3bNGY6ti2SVzD09dHzu6yF0p8aESzuHl1z30XPYhoTdrHsozejoNO7NKq6TmYsAHWKJ4+"
					    "TLbxop46U2DKPae0Yw5eQfc5RbM6y6fCvIPlqHyv9MlaEfxh9Ltrqb8E6I+5vi7gZzoUxVJioPVr9n9aXdHqOF9aaypnxu/"
					    "Dsds8ScF7W2JLyUJ8u+vxv1HeYNF6wYt5N/F3PCoDO+tP9EcZ2hq32Wd+Ioj9mlbrBSHMcMWCz9DHnk9z5NrmPyoXs+w0B9XT9QmmH/"
					    "3ymM5YNj59RQPxU57VQm+YZ5a2wY1IO+KZ/8/"
					    "CbwLq9RcVVWpFM8D09ghu70R2bsQhnykWmK05LrzFBXVRNkIXwYV+NAH+naXfscc21iGRMyBaf9qv6KG+0rip/"
					    "UP1ZT7a9RlrE+E4voeUMGSZeT8qFSyX9Q/4haNfdZ1TfrvFP6OUwQh7YaHR9IpHIX9xvyy1X7BJEq/"
					    "xr0rLY9Osg1t+t98u6XNmOM6dxcHjFjdXxVfPEcIp/qWnLNIittOnnNIaHccGydLavknNO3m2RTmWP9mvb8QBtL4BkL7rSxPL7rq1GmqTGhS6/"
					    "8wSlfdeyMZQ7bq3bdp7zJc1hlHqTnvdR7bRiDb8rj3iG01wPt0LB08Mfa7DIC6lCcHLj8ZmuncG4yOVFeEDl0iudiA9eiUzxxdP5eucXECwNb64i67"
					    "OQzW9bdDA+qRd6xGaVB8v1DlT3GJF2AuoxKj8HG8q6jMeoqu9+"
					    "p6chFvNaWezpJ3smZSaWh77AFp2P6GRc4dOWpWO7e6IBtp3TIQZ3B6ZgLHksQuYGnTz6WPzTUWBsc3m9SHPUMz3Pq3SkuyCOfOgh7RvgB7hRskDmwk"
					    "U8f6pz0gE3Xd+LxFCuMRljR13lQ0LWRjk/KKdbd1a/jsT4i8e4NdKVDzkfxOMhMpMIP7Sut+tMeoU1UZ6+/"
					    "IscCV+xHKhs2p+azRv9A5qY+O5fVHCaxbegn3TlSqk/"
					    "pDu03FLtqnziTnmNtj45L25Xr8fCaTXmznJjsnSdZAXtxSj85TmX5a7tBbpVVvOZkmbgOdPcPS2RVHviyBafjY18PWRHB6odX2vjbFfa7+"
					    "oMQRxgT5uiptHB9pK16DivN1Pnboifq9tqQgBt09ONg7D+8QeVWUUkdihvz9HQTo6GbHdI+T1dx4YtjOi49deO9ED6m0Lvo6bha7n2Rh//"
					    "OqUNpObGGJ/"
					    "xQCDjsPfkYJmo4LjJRPi5yDDywQRZkIm03M6LjRU5lcEIjO52e9mBA6GZQtJ9cTUcGFWZdSo6ZFZZWUgcOuV+"
					    "GvemflJeXSblxoA891farysvbA9mfKizc+MtPS9UUHPSinJ3CYZjP+hDG+"
					    "0jfKzw92YPBcBkMepMusccw4MlYLoOCZruk3zHZwOyFZMX4Q17OU9qXQZj+k597cKyyUtyO9NqCQTXIS/Q5OCWGU33kmeSjHwa9tc8DDvSg7yY3qr/"
					    "yTvWVVv3H+muSZY6fGJT6UYo7Oh8Epk9oO7R/zOmzcziltJNMpMOcMejQfoNca/"
					    "cJyjy1nmNtjzxL25WvrubnKWUtdci4d8+hwhKr0jm0tK6Wa04qm2sHfSB3S2RNehz9fBfHNM52Y6bCaOPctV4T8zwt+"
					    "5N6zjiHp87fFj2RudSGLbpcZRobRpVmU8fjprx4Y644bjxqsyupRG7Q6JS9k2ms3JTxUH9mHZz44YZa+Z5rSydKEEPH3Ozv5Oc3mSFuwU+"
					    "RSSyfwWGtAaITLcrda4MuMu5M6PhKyTAu9lwse3jB30tXClBenvJUn/SkPBPpaJs3MW24gCv9cDkky6lSPVzchiwwuDD6p/"
					    "pzrKbNU3n0l3OyGQo6yUoy0z/"
					    "DAxDtcwP8nXwMLtzJOanu1j4yvB6V2nJSf+k41lea9G+VORBt+"
					    "FF51X7UWpfSrcJH5RzcP1plbkBTTNJSvtJUx7ZCoYf2m12LTIV6R4NaylxTT5U11va7FnkqCnHdXnSdLJSHjKV7juo5VCijKUj6tpxTcKH/4A/"
					    "vH2bLqjJOdj1UXTz05jzpxkwdD++Pmq6JTUCzRC16RtmK96dZUeyOnr8qZ1JPpam14aCq2zl8cDuqXJYmsXPzVa/"
					    "0lOayBPxTmmCMSM7wJPTP4G4vXcC6gKU7F8ykqqNkTnyYkbk0h5HDjMnHUTBmex4PhAwzcbF9nyR9sjTolQynLHhydzjQTWY4c4JRVuLCU3RmXPiAR"
					    "Fj2If8uk3kpp6yIs+6O6h8lG+sr167/FPxRPhfUP0593o1yaeg3U9xr8RejZ0Pb13QYDVe54d5Afsv1d5JHLOfS7jmKY+sFyDrVr/"
					    "nvQO6JWGHBig32Xw8adOk1cbItB/UccriGnsU2PESoS8/71hdffEHjMjXJ+vtTNtils1lFPjGlU3XL8FYp9ESFxIsBU94tF+5mqXIm2qf/"
					    "8W7MqnW0CqN6ueCN6hjT9F68bC3/nOkkNwMvswAsk8J4Yq1093QyxnMzzFMxuwqBLXCKOhb7yhb0rzR9U/CW+Yz1myZ4G04kdixx/"
					    "ll+b5XGoUhU3kXcc0iOlrH1ImSdy1y6Mbbe/NjZ0oZz2V1q+qgrbfqWDaMTtJJAL/4/"
					    "mBOIV63imHIfs+yqQoWIVjmUjidHvMNyNQ8PJCtG51NtzIDQB1um3pXUbmsE3Fe21uLr6Ot+s4yjuB31xlrln/"
					    "2eo1WG1nTLSDvXIQS21DbSFUPehtEhHcZ5t0WAC4Q0ZpmVZ1e21fTW1gRMwARWJaBx5OoetK0KwIWZwIURyA2jBxcmm8UxgYskoJOG902YMeJdFDsT"
					    "MAETMAETmE0gjiFXtfpgtpLOYAJXTMBfpbvixrPopyWgAY1ldF6Odlrsrs0ETMAEboaAxhGPITfTmlbkFgncvGGki9Aft9hw1skETMAETMAETMAETM"
					    "AETklA99VvnbK+U9e1BcPophvw1B3G9ZmACZiACZiACZiACZjALRLwO0a32KrWyQRMwATOREBPE/"
					    "mTYb66dVYnGfw+4FlbwJWbgAmYwPURuPkZo+trEktsAiZgApdFQEYGX2V8EaVKRs8zhed/grvTcfrvkrN/1l6yfKWNz692/"
					    "911WVQtjQmYgAmYwKUR8IzRpbWI5TEBEzCByyPwpQyMz+P2icR7o40/Bu+c4jCe+BPhs/"
					    "xZcydIf4dP7PMnknYmYAImYAImMEnAhtEkIicwARMwgc0TeC4D40lGAWPjHYXxJ8LJEfZ1OrgEPxppT+"
					    "RjtNmZgAmYgAmYwCgBL6UbxeNIEzABEzABEWA52usJEhgg1WVrisNw+l0by+8e6XjRZ4uVDwMNg+"
					    "xD7TN7FZz2mR3qjlO4fGawyPNDFuZdEzABEzABE9gj4BmjPSQOMAETMAETyAnI4PhGW/4+EQbQbwr7hXTyee8ojye4c4r/VQc/"
					    "yscYwsBK7yt1aVp2lJ+Zn/"
					    "diOXzkgeOdfAylfEaL4OR+0s5H6cC+CZiACZiACdQI2DCqkXG4CZiACZjAHoFohHysiPezSAwj3jvac0rP8jqMqPTuER9m+"
					    "PtewraAx0qGkUb9lJmMMYyi2owWaZDPzgRMwARMwARGCTwcjXWkCZiACZiACUQCMkQwMFgS935mlBDLzE0yUjjO3ac66Ja4xXxppomZHsqbcv9QPgy"
					    "h8LU7+U+VIX+f6UMd/"
					    "1gppGiwVdI62ARMwARMYMMEbBhtuPGtugmYgAm0EpAxglHEl+nCsrR4vJOPscKGcVRyhAeDZhipvBhIS5a5MUOUG0Ycv1R5LLMLRldWF3IX68/"
					    "SeNcETMAETMAEdg/MwARMwARMwATGCMjYwLjAEOF/"
					    "gTA+mOn5XFuYjYnGCGlKDkOlF6f0LbNEpbLysGDsqCyMomR8sT901M07TnYmYAImYAImMErg4WisI03ABEzABEzg/j+LMD6G/"
					    "12Uf4WOpW58wns4O8MyOmaaknFEOS8PhPoslonBQ318cY4/"
					    "lx3OFikozEjlchJmZwImYAImYAJ7BGwY7SFxgAmYgAmYQE5ARs1f8+"
					    "PKPrNAGCDMJHUuGkqrGiYqE0OILbl8P4XtlA4jDH9orHVpvGMCJmACJmACicCDtGPfBEzABEzABJYSkPHBV+"
					    "f4f6I0M7S0qDXzJWNtzTJdlgmYgAmYwI0SsGF0ow1rtUzABEzg1ARkFDEzxBfkwkzNqevP65MMLK3jT189W5SD8b4JmIAJmECVgA2jKhpHmIAJmIAJ"
					    "zCUgQ6S3lG5u/"
					    "hXTfydZ0n8nrVisizIBEzABE7hVAjaMbrVlrZcJmIAJnImADJK7M1XdVXsJMnTCeMcETMAETOAqCNgwuopmspAmYAImYAImYAImYAImYALHJGDD6Jh"
					    "0XbYJmIAJmIAJmIAJmIAJmMBVEPDnuq+"
					    "imSykCZiACVwPAS1j4w9gv9X2jjbe9Vn1c93XQ8KSmoAJmIAJXBMBG0bX1FqW1QRMwASugIAMIf5o9X35f8j/"
					    "8QpEtogmYAImYAImsPNSOncCEzABEzCB1QnIKHoSC/WX4Van6wJNwARMwASOQcCG0TGoukwTMAETMIGPhOA3GUhn/"
					    "0Kdm8IETMAETMAEWgjYMGqh5DQmYAImYAJzCTBj5NmiudSc3gRMwARM4GwE/"
					    "I7R2dC7YhMwARO4DQKaFeIjC19q+"
					    "03b79owiPgAw0tte07pSUs63LvaPvfMUmDhHxMwARMwgTMSsGF0Rviu2gRMwASunYAMGmaGvtfGxxYwjHby0wcX9maMYhyGEB9oIC35MZT85TqA2Jm"
					    "ACZiACZyNgA2js6F3xSZgAiZw3QRk1DySBhhFGDrBKIoasf+LwnrvF+mYmaUn8oNRFNN+Lp8yqk7pMZw+"
					    "04bxleet5nGECZiACZiACcwlYMNoLjGnNwETMAETSAQwWB7JWPkmBUSfWaAfBmHdodIzo4Qx9E/"
					    "t85GGKfe1Enxmo2gKk+NNwARMwAQOIeCPLxxCz3lNwARMYNsEPpX6veVyMl6YRWJmKC2n6wgpjpmkr7RhOGHs/"
					    "KowjKsp97ES9OqZyuB4EzABEzABE5hLwDNGc4k5vQmYgAmYwC4aQBhBQwMIY4n4oiGjcJbOsfQO44h9ZoJeauuW3Wmfcl9o+1Ub+0+"
					    "1vdLWOaVhaR2OjzdgXGE8hX3F5cv6FGxnAiZgAiZgAtMEPGM0zcgpTMAETMAE6gSGRghL49KHFT6WkcLs0U7+"
					    "l9owdILTfnEZncIxhH7W9rX2WaKHgcUX7jpDS+EYRT/IZ/"
					    "bpsTbSsv+BNtLamYAJmIAJmMBsAjaMZiNzBhMwARMwARkizPBgrATDByIKY9YGw+Q1x3IfKSwZTmn53H2MfmP6b+RTVnLM/"
					    "mA0pXwhXMf5RxfusngMqTRr9Uzh1XebUgX2TcAETMAETKBEwEvpSlQcZgImYAIm0ELgEyX6VsYIMzhva2O5GzNGzA4RxntEyT3TzhOFP5ePMYPDwBl"
					    "+pvtThVNuchhU3WwRgcqTf+yB+FCGwnPjiaR2JmACJmACJtBMwIZRMyonNAETMAETyAnIEGGmJzdiUvReWDRaRg0XpcFgYstnizC0foxxO/"
					    "nUGZz2mZ3qZo90/I62PG9Mac8ETMAETMAEpgl4Kd00I6cwARMwARM4AYFo9AwNnzRjxEzSLho//"
					    "4ni8FGG3BDiYw52JmACJmACJrCIgGeMFmFzJhMwARMwgSMRYLaJr9bxAYY37GvDAOLT3hhNzBB9p42leuHdorivw5AW384ETMAETMAEZhOwYTQbmTO"
					    "YgAmYgAkci4CMHN4n6r1TNKxLafL3kkbTDvP62ARMwARMwARqBLyUrkbG4SZgAiZgAiZgAiZgAiZgApshkM8YsUxhqDj/"
					    "E7H3Eu0wkY9NwARMwARMwARMwARMwARM4JIJyK7h//S6v5kYyophxIur+bKEPE3+Umse7n0TMAETMAETMAETMAETMAETuCYC/Fde1f0/"
					    "zAqgP06ZYyAAAAAASUVORK5CYII=",
					"text/latex" :
					    ["$\\displaystyle \\left[\\begin{matrix}\\frac{- K \\left(P - P_{t}\\right) - \\left(\\beta - 1\\right) "
					     "\\left(c^{2} dv_{dy} \\rho + c^{2} dw_{dz} \\rho - c du_{dy} \\rho v - c du_{dz} \\rho w + dP_{dy} v + dP_{dz} "
					     "w\\right) + \\left(c - u\\right) \\left(2 c^{2} drho_{dx} + c du_{dx} \\rho - dP_{dx}\\right)}{2 c^{2} \\left(c "
					     "- u\\right)}\\\\\\frac{K \\left(P - P_{t}\\right) + \\left(\\beta - 1\\right) \\left(c^{2} dv_{dy} \\rho + c^{2} "
					     "dw_{dz} \\rho - c du_{dy} \\rho v - c du_{dz} \\rho w + dP_{dy} v + dP_{dz} w\\right) + \\left(c - u\\right) "
					     "\\left(c du_{dx} \\rho + dP_{dx}\\right)}{2 c \\rho \\left(c - u\\right)}\\\\dv_{dx}\\\\dw_{dx}\\\\\\frac{- K "
					     "\\left(P - P_{t}\\right) - \\left(\\beta - 1\\right) \\left(c^{2} dv_{dy} \\rho + c^{2} dw_{dz} \\rho - c "
					     "du_{dy} \\rho v - c du_{dz} \\rho w + dP_{dy} v + dP_{dz} w\\right) + \\left(c - u\\right) \\left(c du_{dx} "
					     "\\rho + dP_{dx}\\right)}{2 \\left(c - u\\right)}\\\\ds_{dx}\\end{matrix}\\right]$"],
					"text/plain" : [
						"⎡                      ⎛ 2            2                                       \n",
						"⎢-K⋅(P - Pₜ) - (β - 1)⋅⎝c ⋅dv_dy⋅ρ + c ⋅dw_dz⋅ρ - c⋅du_dy⋅ρ⋅v - c⋅du_dz⋅ρ⋅w + \n",
						"⎢─────────────────────────────────────────────────────────────────────────────\n",
						"⎢                                                                   2         \n",
						"⎢                                                                2⋅c ⋅(c - u) \n",
						"⎢                                                                             \n",
						"⎢                             ⎛ 2            2                                \n",
						"⎢        K⋅(P - Pₜ) + (β - 1)⋅⎝c ⋅dv_dy⋅ρ + c ⋅dw_dz⋅ρ - c⋅du_dy⋅ρ⋅v - c⋅du_dz\n",
						"⎢        ─────────────────────────────────────────────────────────────────────\n",
						"⎢                                                               2⋅c⋅ρ⋅(c - u) \n",
						"⎢                                                                             \n",
						"⎢                                                                   dv_dx     \n",
						"⎢                                                                             \n",
						"⎢                                                                   dw_dx     \n",
						"⎢                                                                             \n",
						"⎢                             ⎛ 2            2                                \n",
						"⎢       -K⋅(P - Pₜ) - (β - 1)⋅⎝c ⋅dv_dy⋅ρ + c ⋅dw_dz⋅ρ - c⋅du_dy⋅ρ⋅v - c⋅du_dz\n",
						"⎢       ──────────────────────────────────────────────────────────────────────\n",
						"⎢                                                                 2⋅(c - u)   \n",
						"⎢                                                                             \n",
						"⎣                                                                   ds_dx     \n",
						"\n",
						"                 ⎞           ⎛   2                            ⎞⎤\n",
						"dP_dy⋅v + dP_dz⋅w⎠ + (c - u)⋅⎝2⋅c ⋅drho_dx + c⋅du_dx⋅ρ - dP_dx⎠⎥\n",
						"───────────────────────────────────────────────────────────────⎥\n",
						"                                                               ⎥\n",
						"                                                               ⎥\n",
						"                                                               ⎥\n",
						"                        ⎞                                      ⎥\n",
						"⋅ρ⋅w + dP_dy⋅v + dP_dz⋅w⎠ + (c - u)⋅(c⋅du_dx⋅ρ + dP_dx)        ⎥\n",
						"───────────────────────────────────────────────────────        ⎥\n",
						"                                                               ⎥\n",
						"                                                               ⎥\n",
						"                                                               ⎥\n",
						"                                                               ⎥\n",
						"                                                               ⎥\n",
						"                                                               ⎥\n",
						"                        ⎞                                      ⎥\n",
						"⋅ρ⋅w + dP_dy⋅v + dP_dz⋅w⎠ + (c - u)⋅(c⋅du_dx⋅ρ + dP_dx)        ⎥\n",
						"───────────────────────────────────────────────────────        ⎥\n",
						"                                                               ⎥\n",
						"                                                               ⎥\n",
						"                                                               ⎦"
					]
				},
				"execution_count" : 17,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [ "dQ_dx_outflow_x1_upper = simplify(S * Inverse(lambda_waves) * L_outflow_x1_upper)\n", "dQ_dx_outflow_x1_upper" ]
		},
		{
			"cell_type" : "code",
			"execution_count" : 18,
			"metadata" : {},
			"outputs" : [ {
				"name" : "stdout",
				"output_type" : "stream",
				"text" : [
					"x0 = std::pow(c, 2);\n", "x1 = c - u;\n", "x2 = c*rho;\n", "x3 = du_dx*x2;\n", "x4 = rho*x0;\n",
					"x5 = K*(P - P_t) + (beta - 1)*(dP_dy*v + dP_dz*w - du_dy*v*x2 - du_dz*w*x2 + dv_dy*x4 + dw_dz*x4);\n",
					"x6 = (1.0/2.0)/x1;\n", "x7 = dP_dx + x3;\n", "dQ_dx[0] = x6*(x1*(-dP_dx + 2*drho_dx*x0 + x3) - x5)/x0;\n",
					"dQ_dx[1] = x6*(x1*x7 + x5)/(c*rho);\n", "dQ_dx[2] = dv_dx;\n", "dQ_dx[3] = dw_dx;\n", "dQ_dx[4] = x6*(x1*x7 - x5);\n",
					"dQ_dx[5] = ds_dx;\n"
				]
			} ],
			"source" : [
				"drho_dx = Symbol('drho_dx')\n", "du_dx = Symbol('du_dx')\n", "dv_dx = Symbol('dv_dx')\n", "dw_dx = Symbol('dw_dx')\n",
				"dp_dx = Symbol('dP_dx')\n", "ds_dx = Symbol('ds_dx')\n", "dQ_dx_def = Matrix([drho_dx, du_dx, dv_dx, dw_dx, dp_dx, ds_dx])\n",
				"L = simplify(lambda_waves * Sinv * dQ_dx_def)\n", "\n", "T_phi = simplify(T_1[0] + T_2[0])\n",
				"L_outflow_x1_upper = Matrix([K*(p - p_t) - (1 - beta)*T_phi, L[1], L[2], L[3], L[4], L[5]])\n",
				"dQ_dx_outflow_x1_upper = simplify(S * Inverse(lambda_waves) * L_outflow_x1_upper)\n", "\n",
				"common_exprs_upper, final_expr_upper = cse(dQ_dx_outflow_x1_upper, list=False)\n", "for var, val in common_exprs_upper:\n",
				"    print(cxxcode(val, assign_to=var))\n", "print(cxxcode(final_expr_upper, assign_to='dQ_dx'))"
			]
		},
		{
			"cell_type" : "markdown",
			"metadata" : {},
			"source" : [
				"### x1 Lower Outflow\n",
				"We replace the $\\mathcal{L}_4$ component with a relaxation term for a specified pressure at the outflow boundary to obtain "
				"$\\mathcal{\\tilde L}$, and then compute ${d\\tilde Q}/{dx} = S \\lambda^{-1} \\mathcal{\\tilde L}$."
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 19,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "iVBORw0KGgoAAAANSUhEUgAAAvUAAACWCAYAAABevXdQAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4Ae2dXc4Ut6KuG8T1EotI6z4gnQEEMo"
					    "IFMyAg7XMdMgMiLo5YdyiZAeF+SxBmkGQEAQZwJHLulxTyaQ1g57yPP7viqq4fV3VVV3V/ryW3Xf73Y3f3a7er+trz58+/2O1272XbzNt//"
					    "etfX7VFOMwETMAETMAETMAETMAETOA4BKTJP6qm2221Ke7a9Szie/m/"
					    "adiXWby9JmACJlBEQB8urR86RZk3lOjQfhyaf0Mo3JSZCHhOzATSxZjA1STwnbrd1OpvE4obySP3pT5sfsuu7TUBEzCB0QT0OfJUmfgsOYfPk9vqz0"
					    "NZNj1GmTPjMKrvTtxLYPKc6i3VkSZgAmdPQN8rPzQ7qTCCHvKSi3qubUzABExgMgF9uPDB8pnc0SJ4cqULZlQ/"
					    "fpb9QvaJ7N6HaVfVSjsrB9qgul7J8gvIG12zU2MzQGCIm+JZgD6QvR+L+"
					    "lnuRfTflHtL9p3st0qbwmP0NEflTJpT02pzLhMwgatE4Fp2pv6OPmzOYWftKo2f+2oCmyGgzw9E0C9y726mUTM1RH3ivqN/yh0UdktyUNl/"
					    "qh1fya1+bp2pi2ddzBC3GP9B7t7cVdhPgnNP9nP5B8e/FKTKKp5TpWU6nQmYwNUjoM+SJ+o1p21qZ+qvHgn32ARMYE4CnPU71/"
					    "tw6Bf9KzGLcNAHdr6bXNIOpxGBIW6K51cQzOtLZ++"
					    "VsWfByhfnnGbMnJqzXpdlAiZwpgTyG2XPtIvulgmYwJEIPJJAKj6icqQ2zVJN7Bf9Q9wNmaU4cEzkN7Vhtt3ioY6cSfwQt6HFUrrp+"
					    "7M5eYycU3NW7bJMwATOlIBF/ZkOrLtlAsckIIHCGfJzP75H/"
					    "x71cV2YA+KTM9824wgMcUP07zR2HzqKDfGK69rJ78hWFDw4p4pKcSITMAETEIEbpmACJmACMxBA+AwKTgknjqb8Hutjx/"
					    "ldj5iKyeZzVFc6RnFHpb7Xde2XBV3/qPCv5bbthtM/+lnLo+vczMJB9bM7DCtEH7yom2MiL2SDUZpD+pKKmcVVWxDO/"
					    "KcJ3Gg7N5YefZFXwk1ta5pO0a/yYE48/ekS/"
					    "c3yxlyXzKkx5TmtCZjAFSZgUX+FB99dN4EZCXAjYed5+ii2uOEQcRRu8pRLeoRg2gmVd3HzTPXSBn5Z4GkylUBXGGemeXxl1x/"
					    "u8acfCLw+czAH1U8dLC7uyh+EsVzYYfKF0yF9uSxthle1jcXHTbnhiTxyaT83gf59huKLi4j1lnCrylSedJ4+8Q1xCmdhQn+YJ0vemFwyp0Kb/"
					    "GICJmACQwQs6ocIOd4ETKCEALvGn3oSIpr4h+r8qS0cZal2nnvyzhIVBdyvsTAWEs32Eta3G0t6xF6fOYiD2kh+"
					    "hGlzpxtxz9NZ2AnfzdAXijnYqB2IXhZC/PKRDI+AROTfl80XISl+dlf1FHFrqTgt0r5UGSxOkkFs/"
					    "6Swb1PAQm7JnFqoahdrAiZwbgQs6s9tRN0fE1iHwC1VGwRns3oJI3bkEcM1Aa/"
					    "w3p1cxSPUfpHFLTXsqnYJc24yTXFtCwoEXq2NjUoR1kNtOZRD2vWufkGIbaBt+YLo0L6EYsWD+"
					    "nhWO78KJDYhrvCFXzuawjctfFpZqZ65x5WmlnJrdiv8SqQ2df0600xfXc/"
					    "AjrJK5lRVpz0mYAIm0EfAor6PjuNMwATmIICA5g93LsYUFtPvPTd8TBl52lS/"
					    "XAQywrISzgpDiBLWt7PcKdiVr8SUcAhp8sLUNtpF+6ojIjP0JVXBguupyhst6JUncXyTCosu4ZjWMmPbZxvXy6rCDcy1sVM9e9xi2tyhra3tzBN1+"
					    "Cezy8o7dE5lRdlrAiZw1Qlcv+oA3H8TMIFZCHxSKYiomonCivBKkNYSrHPBrmzz0ZAcI9mpvX0Cj37Qzz4zmUMPK4Q+bauJ1tiIqX1JfaDfbeWm+"
					    "D6XuqsjQVnCx/"
					    "LDN9wPkIUv4p3IDZ5fxAZN7f8h7BKLkjmV0to1ARMwgV4CN3pjHWkCJmACZQQQcOnYRZVDwulCluuLKjDzKO5o566zamlnU7xzDCOIO7WJG2bf0PYs"
					    "D152VYeE6mQOKpuz6JhmHdVZf7UJIYmQTmlG9UX5EJHPZDkzjh8B/lq2MkrzNF5wTp5jLdQZ/"
					    "Fm9JGGXuyaIFY9Qxs69E68iB01ikhL2cSMN7ccULThnZndZc9mcSmntmoAJmEAvgeu9sY40ARMwgTICiOQvO5JyzIVd3ZqRSEIwDu181/"
					    "LMdFETf1GI3lPZSejfUVhT0FM1QjWl4brNTOYQ60QkI9SDURiCGpGcBP8DheXtz/"
					    "07xZG2tS+KQ8TzVBr+TpwxoS7SV8Jc4Qh6bmj+Xu4tWdLip0zSBqMwyqKdpAkmhnGT7zfyD3GKuQ53VBdjNZYbFbOg2Sl/"
					    "1X+u24zSzMauUX7JnGpk8aUJmIAJtBPwTn07F4eagAmMI8BuL4Juz0gQIfK+"
					    "wyqSHWIMIumFwhBkxzbc2PkqtodnwCOMEVe0EVFLX9oMO7s85rDPHMqBxQ9tox2fyVIeO86pbZzjzs2YvsCfexuaC4FcgPPLSopnjNIuNs/"
					    "uz9OlXW6e0pPv7PfdqJy3e25/MTe1F4YsSMIiRdf0kSfdsHjpMnOyy+somVN5evtNwARMoJPAtefPn/"
					    "PBxu4Nu1Ppw7wzgyNMwARMoI2APj8Q7GuJurYmzRamviECEX75oxtby98qB7XrDzWY8Qk703IR4+z8s2jYMwr/"
					    "U4Gt3wuKQxjfk8ti6OyN+jkbuwRLZRbPqZTHrgmYgAk0CeizhCOj/Kp67Xoz0tcmYAImMJEAu5lDO9kTi149Gzvi9K/"
					    "EbI6DPuzZdcfmGzeIeRYqPFOeuMroms2eatde1wjQ3LDDPHhsJc9wqv7IZk52CcWYOZXy2DUBEzCBTgIW9Z1oHGECJjCGgMQP57RvtwjAMcVsLm3sD"
					    "/2qHoHZ18gtclCbLtRmbDC6RrQnYf6IQIXRR3akMY9l8wUAAjQYpUHgIvLTH3ldRpzpq/"
					    "o7G7uECNbyF8+plM+uCZiACfQRuNEX6TgTMAETGEmAs82crW890jGyrK0k56jJ2F8gtsiBNnEGnuOWn/DLIt4/JuEql6f+cCwnnKWPfl3W/"
					    "mCKm2YxV2Kn/"
					    "rKr4UbvOdjF4nZT5lTKa9cETMAEWgn4TH0rFgeagAlMJSAhyC7kQ7l9Nx5OLf6o+aKo5Wkw+"
					    "a51URvOiUPeYfWLnXrO018lUZ8jOMgvbiyaJs2pgyp2ZhMwgbMkoM+U6ky9Rf1ZDrE7ZQImYAImYAImYAImcO4EclHvM/"
					    "XnPtrunwmYgAmYgAmYgAmYwNkTsKg/"
					    "+yF2B03ABEzABEzABEzABM6dgG+UPfcRdv9M4MwIxJ8af5N7tDPdqotz5M8iSu4ZwPCHTDwZxcYEKgKaEzwveuyN1VV+"
					    "e0zABExgKgHv1E8l53wmYAJHJyCx9FCV3pV7NEEfO8k/uvL0EyxPkeHpMTxFxsYEmgSYK+mfeJtxvjYBEzCBxQhY1C+G1gWbgAnMSUBCKeyWy11jF/"
					    "SJ6uW57snwB1M8Z5znvduYQEVAc4InJf0ol6fc2JiACZjA0QhY1B8NtSsyARM4kADPv+f53msYFhLv1qjYdZ4eAQl6/"
					    "qjsG7ksRG1MwARM4CgEfKb+KJhdiQmYwCEEJI44x86z0Vf5U6so0vIuIPI51/8hD2zzKw27+a9k6QN/"
					    "7jTqlwalRxiyoOFPnz7p+"
					    "o5cGxEQi162ime3nDmTfmXh2Fa6DwKut2RZrHGsKoXrchbDApRx57iWjQmYgAksTsCifnHErsAETGAGAvz7Kbufq5soJMPZ/pLGKD3Cn/sA/"
					    "pQ7+qx1FJsP5HKG378WZNCH2CqeP0D7Xi7sP8jdWxQqjDH5f3I/l51T2DNfOV9/c+ZyVayNCZiACewT8PGbfSYOMQET2B4B/"
					    "jFvtCCeuxsSZ+y2c54ekV4sAJU23yme2ix2pVdnMLXxMJBlHGc1Q2wVDzfM60tn75UddXbtZ22b6mV+"
					    "sKB7JGtjAiZgAosT8E794ohdgQmYwCEEMlG26i612oGg55hG2O2N1zu53Bg5ZMjDcZ3ihUBeoPLNsSjIi1zDj3DGzm2G2A6xY1wxn106s74yZzl+"
					    "s4lfmWbtmQszARPYHAGL+s0NiRtkAibQIIAomyyIG2VNupSoRvixo4uoTzu/nI3nWFCJoQ+HPIZzSLiWtOFc0wyxTYuwrvsfQrzgdO3kH8LtozJ7p/"
					    "4Qgs5rAiZQTMCivhiVE5qACYwlIAHMzizHGri5872uazuWuuYG0KE/"
					    "cfpSaSbtcCvfKKP2cLTm95iJOt8pDDHIeXb6Uns2veL2bnpVGAsAymEHn7IQ8ywEXsgGozRcP5b9Qn7Oy4dfAXRNnR91XeOksCBcFc5Z/"
					    "luy8KQMnrDS+kuBwvO+wJA/RTpkYaEi1jVq/"
					    "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"
					    "fvrm2ucGXW0Cmp+jHql5tWm59yZgAjMQ+"
					    "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"
					    "oZgbsoEzABEyglYFFfSsrpTMAETGBGAhK/"
					    "7Hqzs42YZ5c+GfwfkjiWy048Yh7DWftPwffXCwuD6ik5Ss9igCfo5GX+lVo+pflO9k9Zyi4yMW1fO2gb9dqYgAmYgAmsQABR/"
					    "7dYb3JXaIarNAETMIErR4Cd7psSy7UjLAprnqfnhtm3kc4jueHvwLmOQpvFQb6rT9Q7xXWKesWHMpRmjAjvbAcVytDu18HnFxMwARMwgWMR+"
					    "EeqCFH/n3iR3BRn1wRMwARMYDkCCPSaGJfIRqBzdCbfeQ/HWRTHWXni80UAQvqiRZx/"
					    "VHifoaxa3X2JiVMdqR3UWWuH4mgzYaPKVHobEzABEzCBwwj8O2W/"
					    "kTx2TcAETMAEjkNAIhgBjK3Ee6wZoY+AbhPH4XiL4i5iWhzCamkVz5Ga2g68wqiLs/eIffyPZWu76krzVGEYboLlVwSEf/ArLt/1/"
					    "0rhzcdtknandLV6CbMxARMwARM4DgF26m1MwARMwATWIZCLZVpQnUuXQOamU3bAk8HfTN8W9lj5KqEvPyKem3Ffys8uP3EI/"
					    "zwNgv6t4rlR95YsafHfkyVtbqizKd6rxYXyPZGlThsTMAETMIEjErh+"
					    "xLpclQmYgAmYgAhI9F7IQVQjkINRGLvdCOh3lyG7BwrLRTxCuhLLiuMYDAI8L4Ow5u4/u+4/N8ra6ToX5hzhSXVRRyqDx1Om8/wKDialCxeKp82I/"
					    "1TeHYXRPxsTMAETMIEjEvDxmyPCdlUmYAImkBHgGMsrCWB2yXn+PMdh2PHmyTSEVTfEyr9TGE/JYQedcEQzz7T/"
					    "XJYyUljtGfaKwzySpa5kEP7VLj2Byt88p5+eeZ+EesqL+60sdbJYoA2I/"
					    "Luyqd30w8YETMAETODIBCzqjwzc1ZmACZgABCSKEea52E5g2sJCnPIEsZ0SRrcvPbvu2Hx3nYXDTyqL8NQOvPjZda927XV9WzbPS5rR7Q6F+"
					    "8UETMAETGBRAj5+"
					    "syheF24CJmAC6xGIAhwRHoyuEe1pp54dfEQ6wv2PkODyBtpcxLMrb2MCJmACJnACBLxTfwKD5CaagAmYwAEE2Mnn6A43y37CL8vTbziqg+BnZ/"
					    "6NLEd+wln66NdlSItrYwImYAImsHECFvUbHyA3zwRMwAQOISCBzvn52hn6ZnlKkx/"
					    "r6U3bzOtrEzABEzCBbRDw8ZttjINbYQImYAImYAImYAImYAKTCVjUT0bnjCZgAiZgAiZgAiZgAiawDQIW9dsYB7fCBEzABEzABEzABEzABCYTQNTzp"
					    "APOU3IDlY0JmIAJmIAJmIAJmIAJmMBpEOA+qHBfFDfK3pblj0sIrB59Jr+NCZhAAQHdZPhEyX6LNyQW5AiPEbyphM9iYt6DGP690+/"
					    "BSxaLvIqvuS9C1oWagAmYgAkcQkDfT/y5YP7QgtLieEwxOv6HzR2/UYeSwCntzFmm2yqHrbZr6iQ4tD/K/1B135U79okh/"
					    "PsmjxnE8shBfinjkYM2yxIw92X5unQTMAETMIFpBPh+Co8VnpZ9t9uUqFdneE4yf45io19QIo/NsDjT8ZnMWTzCrq/cKSvrJ8rH6jqZ7+ShLZ7/"
					    "icgyrrkvw9WlmoAJmIAJHEBA3/8ch/9RLlp4khn9nPpY2ZeqjR1KTDi2o/"
					    "DaX5Xr+kfFkYbjBO9k2ZH8ILfVKI60n8n9vi2Bwukkf2+ehFB+XAhxdUs21UOdq+"
					    "uOgXQAABc8SURBVJi52qlyfpb9QhYR8sMqnckqVRuGxgcxypiza70a/6zJwau28MsPovt32Tsh8HIuhjYq/hDO9JefvKYY2sR8HW3UZli/kqVv/"
					    "GnQlEXF6HrPJIO5b3ggPbfXHxyPwfHHYIi54k9C/xyb3DlyU59+kOWPAXFHa6lrz58/RyDws/8dFZD/"
					    "PXjv+Cjtn0rAOeIklGrpFY4I5F8LB88JK+1NpftF7t1aIS0XSkO9H9rSKoyfLe7Jfi7/aBgt1U0OmqudKoex+eea/"
					    "VHdreMTwxGXHB2BO3Pp72u2VfVXRu2gPfflVgtF+Tn//kBucxE6irPyI6jfy/"
					    "17VeEBHpXDTv1Dua3vp7ailZb3wldy37bFO2yYgLkPM1ojhef2GtTrdXoM6jyOcTXEPMZvXv8cg1Vex7lxU39YxH0pt6ZT8j7nfqVD13Ae/"
					    "9r1PKLUr4yIJUyrmIgV7OQiOErENYJmcMdTZaV6X4fa918oAwFKB1czM7eTPsFnTdM6PoytLGPM7mfXmKzSbrWJefBYbiXoY0NYuKZ5lLdtLOdvlXm"
					    "WX1DURtrDInhwUZsarDz5L1Yp+ORd+iV7lPevuXdPl2OOQ7MV1B3Dxt6n0izqpK89BtscvqXGZWjeKz59b3V9125C//"
					    "SN2hLszpQb2oJNPnTMKDNJ1KuG9KFbO9BPA2QRgBxpaBX8Ha17pPQlAinV2/"
					    "Vhz+4p5rNLZ7XX2doZucBn9ODO2PvS8ZmxyoOL4tgSwrtpWPnuHQObwBnhWZv/"
					    "zYpKrlUvc5b3zNhjSxxF45eyi5J6TigN83zxuW7ugzPiKOPQ0Ypzndsd3e0M9hh0olk1YqlxGZr3s+"
					    "mKFektwe7suMXvdXTKo7FjdWNshpieYzU7VVyJa/lZRbIz2iakYrZ9R+nZoSw99sPg7ZRnT5TFkkO8/"
					    "F0r2ZhscWfudsKHwS1Z+MzauZHjM2vdcxcW+8IHY9eOeBFnlZN2TCadiU/9UjkIeu41SfMlLEp1XfJ+oB/"
					    "V+y+VaXeYgLkPM1o5hef2ygOg6j0Gxx+DIebpe2Lr+ufY5M6VG/qCTchRuu/"
					    "GRPqImmpi6UuSXUt2GqfcsMdELRUnnYOnumkT8b035Cr+"
					    "GGbudsIHTqMGd6aOjhmfmao8rBjNhcBfLiKZnyQvZINgltu3I17KmfKLdsnVBnbhuUkXQzveKYwzkaltzNe0SOD9s7cojmkpB7FPWbSTPC9kg1Eadk"
					    "B4H/IrVbjJJkToRXEf5VDPmF/"
					    "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"
					    "Krc69yo/"
					    "giWJKc7n8qHLF3vtw1hhTcMOIeXtGeVlkUCdlLXTNV+KPOmmqpfwtc0B7aRf1ZdzTz8QBEymNUzn+"
					    "NAY9T2NHW3EsJvLmDNOfLEc09AG5swt1f00Vsxigyc18YSmIVPK+VcV1LlwVV3Me54MxXsinaHm/cMCji/"
					    "TUoOQe6U89IV+MBbs6lA2YfS1MgpjcYhYZ0yCgJS/+V6hTelXtTwvH0IYPkh+UD4WEPlxB9ikxYS8waQxp97EG85jbiyPRR3uqA1rc2c8GN/"
					    "fZT+XZexSWO2/AxSHGRqLkIh+4ZGbPn+bnwWnOA6j5ra6z4IGnjCDL58xLMLTe4H3RjJDXEvn+CiualvJ+y+1cVFXbSl5L6w5BqH/"
					    "tBOP3FnmtspJY5Ded6XvxUXHIyu8mLn6Qh/"
					    "G6p+55j5jklj2fZ9kXVvUuza30DkxGZqvKV1id8g8ZOz51W2MZtjdGBqGWCBAew0TQAmwo4zycXxgJ8vOSRIWoQxdN7+"
					    "8RpV9rMRT2qk8fGEMDpjSpQ+7EvE/e5dVf+f4UJniB+fG7I3qLpDjIm9j9CheyjeGc1iFK89N2dY3nMJHvxea3Yplt/"
					    "FtCwvZlWfoPfNICfP8zMOKlfKHRbjcxwpPLCn7S9naTrOuw8/"
					    "GMU9z8UCeoxu1ZUvcc85tLHrHIs+gfrEBcL+jfyc3DuoH75s2Pm1hu5Hpe7mqrNI5Ppqryh56/"
					    "+XDuqhfbel9L4xkuhuZvncM8o6r3FnntsprG4PWeZW34xj+MQw7+"
					    "jHUzF7uKrN07od6JrZhqI2j49fmljdYbembr1XSDnZj5iGbFtV3c1XwgOf6QPyxolldtr0Rj1X/"
					    "GvUwMcKAafARh1y3GT6Y4bOmuQrjU8xZY8W4IUr4+f9kDPNMjcWGD/bYcIQLv6owB4lLhvmYi/ia+I+J2sJS/"
					    "qkuXLFnbcaMhdLC+Z7csHCSy5GqfKw8DnG2RC6wmWOOL8F1zLw+yffCmDFQ2jXm9pgxaEu7yXEZw12dKvl8b+"
					    "v7oWGbYzeGW8F8PZRPnh99kX8H53Gd/k2IeoHimAZfVGG3tLO15xXBMQWOcWCeyeZfQiEw8oDLsY+xhPrTyymMj9rIFzk/tY42Ezm/"
					    "UUUI4pMx6mftA1XXfLAn4cIOT9OEs3xKRxpEf/VLmvzw5v2a5nAz76RrlVt7XO6kQk4gk/pZNBZKB2MW1Z/"
					    "k59dMxoIjVuTfyfU4ACKayCWwIUjXk+b4UlxTO0tcteEk3wtq96bndgn7vjRbHZdS7lnfOj/"
					    "fszSzerfIrpSb0vV+Fs8JSnXxuc5nFzpjlLkxKvWyiflZgrNbJyWUDkDCWSvOPXIfAk++qb6IsjJDmux6Te/"
					    "Wx4dV7eifqiLQKZzJw5+Y9f7EHcvfksM4ct7vvVw+1Gn/Y1nOfOdzkHDmJ+nIUwl6+THpV4qpzC9LudqvJWPBOPxTlkXXK1kW/"
					    "+RLxuOQSPzllnAldd8cN9e/eE7xlYyB5/YUsv15SrhTQt/c76/hPGNLuA3N1znJ8HnPP9Ln38lF5V97/vw5qwG+uHl6wN5ucVEpMyVS/"
					    "ayEeOLGJs7nztStScWIwVNlZFBXHZO88ec4PodwVl4WoSzI8rPnObKT9Ks/"
					    "7BJws3GYe3L5CZAboKtfjGIajoRY1K84yh6HafAjt845bq7TuM6Zy2MwJ82/"
					    "yhqa+3+ltG8tAhojHrDRfLpdZ3OUns1hfsG9tqWd+p0ahIi48oKekROLzXE4x/E5kPPXGip2689K1Ks/"
					    "7AhzrOZ78eG4B+KnEvS63umaHQQLemCsaDwOk+H3znFzncx1toweg9lQNgvqnfvNxL4+LgHN+"
					    "yTQJ23oXj9uc12bCZwPgfil80Lu2jcyzw2Vo0UX6he/FrFbwF34NiZwTgQ8x89pNN2XMQQ898fQOmJafddyWoVHQk/"
					    "e1N3UTv0R2bkqE5iFgN58HJFiJ/"
					    "u+7FnsXJ9LP2YZYBdylgQ8x89yWN2pAgKe+wWQ1kvCuX3O9082FvWT0TmjCVwS0Idk7WiKuZiACZiACZiACZjAGALSEgc/"
					    "2t3Hb8YQd1oTMAETMAETMAETMAET2CABi/oNDoqbZAImYAImYAImYAImYAJjCPj4zRhaTmsCJmACRySgn2N55DBPq+AGqjdz/"
					    "Dx7xOa7KhMwARMwgSMSsKg/ImxXZQImYAJjCEjE86dfd+X+KfenMXmd1gRMwARM4GoR8PGbqzXe7q0JmMCJEZCgvx+bfBZPVzox/"
					    "G6uCZiACZwMAYv6kxkqN9QETOCKEnigfv8mcT/"
					    "6L8OvKC932wRMwASuJAGL+is57O60CZjACRFgp9679Cc0YG6qCZiACaxBwGfq16DuOk3ABEyghYB247khln8o5i/"
					    "Cf5dFzHOz7AvZPaP0pCUd5o7st3Pv6Ku8myqXvy6n/Pe6rv0vg65/VPjXc9erMm1MwARMwARGEPBO/QhYTmoCJmACSxGQKGZH/"
					    "r0swhzLX4Uj2jF7O/"
					    "WK58bZ16SLaRHXKT155jLPYvnUVytf4Yj9h3J9NGgu2i7HBEzABCYS8E79RHDOZgImYAJzEZAoZjccUY6YZ5c+GfwfmqJZ1+zo35fL03GS4S/"
					    "GKaPTKD2i/KksT9TJ87bmURp+Jfg1RnK2/1MjIWGD5TTy+NIETMAETGABAhb1C0B1kSZgAiYwkgBi+6ZEdO1oi8LYvX/"
					    "bVZbSs3uOkP9ZfgT2kHmpBE+VtlSIc4NuSvtIeZvHgGhfM2yoDY43ARMwARNYgICP3ywA1UWagAmYwEgCCObaERuJaXbv2ZHfez694tjB53gOohqh/"
					    "lFhtaMxCmszDxVYq6ctUQpTmeFYjVzqoT3VokNhtI2w4vKU1sYETMAETGAhAjcWKtfFmoAJmIAJFBCQOEYYY5viHaG/U3yraFY4x204roPgxs8O/"
					    "AvZC/mDkZ9yn8l+lMX/"
					    "WPa1bGWUhuM4GG6EZWGA8A9+xaWjQF8prPlYTdLtlCbt5HNpYwImYAImsBIB79SvBN7VmoAJmECDQBLQKbg6ry7hzM2o7Iwjor+TRaQHI3/"
					    "r0RuFI+K58fal/"
					    "OywszjgjHy1SFA4gv6tXHb9b8mSFv89WdImQ91N8U77QlnK80SW+mxMwARMwARWImBRvxJ4V2sCJmACEJAYvpCDOA6iPYaxC46ofse1zAOlS6I/"
					    "Hbm5jNGr4kj/QywrhbPrjuBP+UK4rnNxfpHFI8rTrwU8ojI/y98sg7Yh/"
					    "FNZd5SeftiYgAmYgAmsRMDHb1YC72pNwARMICPA8ZZXEsbsnH8myxEZdsLZlSeMc/PJfC3PfYXzOMm0O444/"
					    "yYliO4juZSbDIuBapeeQOWpzsjrkvhQhsKTWCcZhuM9tI+FAs/"
					    "FR+TflU3to702JmACJmACKxKwqF8Rvqs2ARMwAQhILLPLnQvwBGYvLArupuhO6YOrNIh9bL7DziLhpxi3k0udwcjPznu1a6/"
					    "r27JV3ph2ry3K0xZ2WahfTcAETMAEjkrAx2+OituVmYAJmMDyBKIIb4r2tFPPDv5OaRDuf8TWcANtJeLlZ2fexgRMwARM4IQIeKf+"
					    "hAbLTTUBEzCBEQTYRefpONws+wm/"
					    "LOKdx18i+NmZfyPL8Z5wlj76dWlRDwQbEzABEzglAhb1pzRabqsJmIAJFBKQQOf8fO0MfTOr0uTn8HvTNvP62gRMwARMYFsEfPxmW+"
					    "Ph1piACZiACZiACZiACZjAaAIW9aOROYMJmIAJmIAJmIAJmIAJbItAfvyGc5bN1vGnJH66QZOKr03ABEzABEzABEzABEzgiASkyfnjwdtdVSLqeeJB"
					    "fq4yT5s/DSEPt98ETMAETMAETMAETMAETOB4BPivkE7z/wHHbrNZ+cN5OQAAAABJRU5ErkJggg==",
					"text/latex" :
					    ["$\\displaystyle \\left[\\begin{matrix}\\left(c - u\\right) \\left(c du_{dx} \\rho - dP_{dx}\\right)\\\\u "
					     "\\left(- c^{2} drho_{dx} + dP_{dx}\\right)\\\\dv_{dx} u\\\\dw_{dx} u\\\\K \\left(P - P_{t}\\right) - \\left(1 - "
					     "\\beta\\right) \\left(c^{2} dv_{dy} \\rho + c^{2} dw_{dz} \\rho + c du_{dy} \\rho v + c du_{dz} \\rho w + "
					     "dP_{dy} v + dP_{dz} w\\right)\\\\ds_{dx} u\\end{matrix}\\right]$"],
					"text/plain" : [
						"⎡                                 (c - u)⋅(c⋅du_dx⋅ρ - dP_dx)                 \n",
						"⎢                                                                             \n",
						"⎢                                     ⎛   2                ⎞                  \n",
						"⎢                                   u⋅⎝- c ⋅drho_dx + dP_dx⎠                  \n",
						"⎢                                                                             \n",
						"⎢                                           dv_dx⋅u                           \n",
						"⎢                                                                             \n",
						"⎢                                           dw_dx⋅u                           \n",
						"⎢                                                                             \n",
						"⎢                     ⎛ 2            2                                        \n",
						"⎢K⋅(P - Pₜ) - (1 - β)⋅⎝c ⋅dv_dy⋅ρ + c ⋅dw_dz⋅ρ + c⋅du_dy⋅ρ⋅v + c⋅du_dz⋅ρ⋅w + d\n",
						"⎢                                                                             \n",
						"⎣                                           ds_dx⋅u                           \n",
						"\n",
						"                 ⎤\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                 ⎥\n",
						"                ⎞⎥\n",
						"P_dy⋅v + dP_dz⋅w⎠⎥\n",
						"                 ⎥\n",
						"                 ⎦"
					]
				},
				"execution_count" : 19,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [
				"K = Symbol('K')\n", "p = Symbol('P')\n", "p_t = Symbol('P_t')\n", "beta = Symbol('beta')\n", "v = Symbol('v')\n",
				"dp_dy = Symbol('dP_dy')\n", "du_dy = Symbol('du_dy')\n", "gamma = Symbol('gamma')\n", "dv_dy = Symbol('dv_dy')\n", "\n",
				"T_phi = simplify(T_1[4] + T_2[4])\n",
				"L_outflow_x1_lower = Matrix([L[0], L[1], L[2], L[3], K*(p - p_t) - (1 - beta)*T_phi, L[5]])\n", "L_outflow_x1_lower"
			]
		},
		{
			"cell_type" : "code",
			"execution_count" : 20,
			"metadata" : {},
			"outputs" : [ {
				"data" : {
					"image/png" :
					    "iVBORw0KGgoAAAANSUhEUgAAAzgAAAC8CAYAAAC0RQvRAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4Ae2dXdLdNLaGN6lcd+"
					    "WEqr5vmAGEETTMgCYjSJgBVK44dymYATCCADOgewQEZgDnvqtIf9UT4LyPPsnI3pIt/+z/V1XesvW71iPZ8rJk77f++OOPnZ0JrCHwv//"
					    "7v+9o+21NGc5rAiZgAiZwmwQ8huy3u5nsM3HI7RDYov8/VCHvCdnPFWw/KP4flTgHm8BO/eMzYcC4mTRwlPZDpXuk7R1t72r7XmH/lH/"
					    "zzmxuvgsYgAncMgEekn2s7atbhpB0F4fmcTXlqfkeW2pkHH7mBCavCerbv0oH7if3nOLeepCFcmH5dLB9ncV71wR6BNSBPlbA2/J/"
					    "6EXUDzBoMJrpa59r+7Ge9OZizObmmtwKm4AJQEBjQnjQJf/5rRMRg7nj6hQyjy1ThBx/dgQarwlfSvCh3dLdjz7MtPpaBU4+hc/SL96NJ/"
					    "Avx6pvsaCFjJL5M22bP2U6JyYtOioNMzEv5L9fwFQLytNidd/"
					    "VEt5guNncYKNbZRMwgXsCGku+0vaztu+0bTo2qDyMhpPec0iGyXsHpVkyrk51IY8tU4Qcf5YEdD6MXhMU/"
					    "81QcIURxPm+yw0cjpucCmCpEVYThVDBjwrrrCbts+SNG1guVKTrnI55QvOb/D1jSmGUy5N9fMrlIscJ/"
					    "1gb7vNSvvuo9t819SgvwDEGe3q1176fUmVVmZBa8bCESXKPFLbKyFJ+uH6i7VPt5xfAHWVrm9IRy3nWDJ/KzNuc/JPLH5WHdEzXv6/"
					    "9X+RfpTOb5c16K31kKSHz2SdXY6Lwo4xB+xJtH3KhOjKmpKeym0ARh9HxdZNKGgqRHIvHVeUNhk+shvsB3DOFc4806pTmKOOu6oEz92/"
					    "cO6y6PxlV6Awipd+t3JcU9ZT+x7xOLr4mPFjSV6Qc08k/abvTPjfIuXGD4sT/jTj5ndMxJ+lH8ovvXcTw75UGA4hyMWjwuRHmJN1kSZPKo/"
					    "419TDlS8OPOqWZNACUZooJ70h9qHTfpE3HzJyQb5FTXsrkYkQZtXKmdPwEeZYIoHxwoW2L/WBQZmCotGdv3ES9BuLPO7xWNjmFLTjl5Wn/"
					    "YvrIQO7iofkUsVQDF/"
					    "Iq9hmVtXZsqMq5JuIWdISP9GRMYWypjUsdxhYmsZzqPUdX2MhOSz0j2YdRS8fVLyUHYyYb90NvtNXenR7WGY6jHgcbd1U+"
					    "bcfD6JZxvSjjBQUWrx8XJH+rqEU91dZHu07GftV0TRgqtcjAiYV8JL/XkSUIT9p38jmJ7mK63MMoCMDywMH+Xrkx/"
					    "nf56cnFIMuiw8X1SDf0xuiYugi3yDvF5Knq6QwJ7WNAvpZf4tsEQnmZqucJS/5kp5dX8VUdFcfMXTVvr6DBgfKiL/0DGUJ/"
					    "GSQZHlJXr58NE5zRcUt7V8W9cja53qs45QXF/UvqIwXx94LMZw/"
					    "JaMASXmN9ZvHYMCrlushb0DERYmxhdcGUa2EyNb5O1UF8Sz0t5ex0jV86rj5XXsb+5NCLl7B5WDnplO7g467qCJzkn/3DyElg0wnGrh/"
					    "TuS8nxZiex7xOtl4TemQf9o7mHXCyhRma2LHZf6n9sRtvjILerE6hSsp9VggnXzdTVIifG7S2nnCh2kCmKpPI9Sf5GAJva6OzMWvWW1KmsEO5mo61j"
					    "t3JIRm5oGKU0h/"
					    "CkjqF8cSJCzJrkeUFI6k3la1wjMYX2vg6BvtPtb3SFpziaTfK+ED7YYmbfOrayWd6fDOn8pIs6PGBNvr36ou3yjgmG3Tg6R8zoez/"
					    "nzaW+y0yUJV3z8VyabODc6LyrL7mPhLz8fQ09BmOt3CZLHu6K+6gfVXl7/"
					    "UjdMpkOjmfgTytjDbvs1NMBn1h7dgwKO7PQ8lxsD5x5jrOaVPGHcaY7sHenwRn742Nr8XzZ24NpTalDIXXrjdLxlXuf15PyaY693RS2M/"
					    "Kt3bc5d6DNmEVzWNttCdfQmVsSWMJffufOmZ1CI5rbXiYGY6yn0xO7mt2Ot507M6qmrWbyXWnjN2rAApH31n3JVSsfLU+"
					    "QPQql8m0d11dWnBWZnHsGJR7sOvkoB4OF10THhQKmgwSBE4WXOrMnEC/K5xOUXSKw7qvxpMppqEjoUxwhGljORl1bXJzslE9LNHjhF/"
					    "sohxjTMIFQxVg2NHhgnEY8y2ud0bGmo5PojzFoiQfsvJeFsYLF2UuDDsdc2P9VrZxgeycwml7+"
					    "hJreBnc6Af0tdAfYvx78imXT4qSHoecxadsSsMFmDKXuH8p06tY30vtc7zKqaxjs+FJaHqyRl9jMNqa1TE5Leoj4k4/"
					    "4nyqOqVZ0leKuqss5JzVV6uCFSJG+tG58UH6uYya+2wBzV5QbIvqdSXPoLScGzBsHoOUp6nfRDkO0icuQMc5bco1sniNyttqaj+25V0pneKoY2+"
					    "MKqUdC6u1qcLHrjezx1WVxxL1XBfuBVjK3z1w035RJ4WvGnej/o/lf6/tW45VJmMw9wHomRz3Q9yvheX02scYCmN/"
					    "SoCveM7FwF77GDacE8koIknnFN50bnUZVuyorhq/c7ymoum/tG12fyL9R/"
					    "XM0Srtwa6TeT3ZPm0z+5rwMCtgzm66UeAk+1obN6N05N7TeB3nDuFYNzrmKJeT+"
					    "LkApnTckDW9TJcyNPhN9cRG5AlEMCwG5SLnbOCDMqaYvKu6qYctPM3S8SvtI88xnnjUdHyk+"
					    "ottKfnoD1x40w0C7fd3bS2Op08YsumJUMij43QR5yLLxZOnSdSBfDv5fHqaGZaS4yKLvLOcymPWjKWAqW5k4okOW6h3VoFKrHxHZ6Nq01O3JC79p8c"
					    "3RcifzUo6HZvToj4i3Tjnp56AztJ/"
					    "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"
					    "fLUsJCWMrLS4h0ZvoQF8dfVV7eFsj+VGHhBl5+"
					    "WvKn4KAX5ewUDsPuqVIM44kSL0umJ1EwGE6BozfpEntu8IdLAhQ02yX9DskGZi8kOzfnMOM8pX0xUOg/"
					    "+bkHxyorxe1Iry0YRoO8RJ+CU2I41UeeST76YdBb+wy26BEGUvm4qv7KN9VPWnUf66v3Usz/TQxK/SjFHZRPEpk+oW1t/5jTZ1PVc/"
					    "xJJtJhzhi0pt8g9yH7RLXdt9IxgZ9o+zVt+lh15NepVOUSn/45vOdI/aF0/iypgzwt15tUNtcO+sDQjY2rtCtjKX7npFsqZ41OKW+176hC6k4GS1d/"
					    "tjOM5+YXA4Sx52WWDt3TdZnl9rwkn5eLPsizU3hp/"
					    "E5jfTduKx19ba1LDEp9IsWN8aH+lj6whX4wPOT9SVVPsd7qOjm3HRddE+YaONxcF2+wpTidNO+oOtxzdHYauNchlbda7l4JKwJm1sMJ9JrqlO+"
					    "5ttQgHHMy429xES4yieVzM5bfkBG82kW5e20wLHRCR2T6YJiH41g2bTzbKS8XxdGnAhQ6kY62eUM6uXARVPrhEkOegKV6wgX3Pnn3i+"
					    "GE8T7Vn7sMLTsqj/5ySjZDMSdZSeYwQMm/08aN7Hfsx4KOzkl1t/aR4fWo1JZT+o/"
					    "1kybdW+UdNszYscqs9qPW+pRuCz47lbO6f7TKPMZkLK6lfKWZMwat6Te7FnnG9CnFtZS5sY7oUW37FnlKesQwXp7fatzbG18lW/"
					    "X8GZFpNEpltpxPO6Wj7+CX7h3GxtX/GRMglnewsUXlI1swPEpyKJ5xtHNRnr30DXKOnlvKzwN0ztVu3NZx7/"
					    "6sE2LGzphcijvamKO6WvRrGntmqB+StuipNJtcJxv1zFVYdE14kJdw6P0IkGnOZCUfuso15YcLrGQNTycHBaWL5iB477B0EeslOmMmYzq+"
					    "khI8XTlHl54cfhyFY/YF6z93YWYstu2H8oeDKbolAyjPN7U/2d5TBRw5fpSVuPC0hhkQPoyBv5N/hx/"
					    "dpXMa1V86jvWTpbondmP+ufSjUT4H7B9jbEpxx+Y1ykUCjvWbkvwtYWelY0Pbt+hUS9M9na8liOGTTCQn1/G19xyT9UzImUdf6ria63DI/alzi/+/"
					    "456MVRes4mD/9SEF2rjsLfQ75Nizpbpjus5tx9ZrQk/"
					    "+t7744gtgMSXFWvwtT+ReRfmB6uEk75a35XHnvh9PKKa9l9wAV9XLmWifNuHdkU3rqFY+iFC9XDRGdVQabnj/"
					    "IX9oHAxKO69DyYtxzZN5pngxgphG7558xXhuUHpPpM5Li9NLc+2con7FfnLtum/Ru26V0Vi/"
					    "2YLrtZcR+fFxnvCO5Fb6qryT33NIhqsdV7dqJ5czTiCeHzd1fxJ1br4mxPMMRm89HMd5mFhVzBrMMFV7mBoOWmq+RGezinIm2j+"
					    "10dCiY3oS1RkHm8E4bEH0O54ePJbPk72e/"
					    "DrGyLdxM9EGN8Cp2k9uQPeJ1p+OvmFG1X4zTc0pRICnvowtmzr1x3O457jmcXXT9nJhZQI3el1dfE04yQxOuekcemkEdLIxTcxL7EeZ+"
					    "bs0PpbXBEzABEygjYDGEWbXb+"
					    "rpdImMx9USFYfdIoEl1wTlYaY0zOAc9R2cW2ygK9eZlwjT18iuXFWrZwImYAImcEACjCW9GfUD1nXORXtcPefWsWzHJLDqmmAD55hNdWV1yVK+"
					    "k0rM4PAyup0JmIAJmIAJzCYQxxCvBhA5j6uzu48zXCGBLa4JzUvUVNkfV8jQKpmACZiACZiACZiACZiACVwAAdkjb9XEVFy3RK35IwNjBdYqcrgJmI"
					    "AJmIAJmIAJmIAJmIAJHJNAs4FzTKFclwmYgAmYwHkR0EMu/ouAr4TxMjif8eX/kYqfslc4n2D/"
					    "Rf5JP0Ci+tMf50kcOxMwARMwgVshYAPnVlraepqACdw8Ad3wY6C8iCAwVHDPFM77dFMOgyb8o3os5z/KsLdUQHHp/"
					    "z5OatygjGT5Shtf1PHL61Ot63gTMAETuCIC/sjAFTWmVTEBEzCBCQJf6maf/wRh42tNb7TxR88t7v0sEcbRnlGkMjGg+PPc4sxOln90V/m3/"
					    "Dojhtnm/60yqoAjTcAETMAETkrABs5J8btyEzABEzgqgee62WepWXLc+L+jsPdSQM1XmnxGhnwYSENH+BbGSZpdGpY/+1hyY2x9KB/"
					    "jy84ETMAETOAGCHiJ2g00slU0ARMwgUiApVqvp2jIGMBQ+V0bszSPdPxVyqN9DBhmgH5JYZmPIVFdDqa4arlZGZO7KgcjDaPsA+"
					    "13hpb2ma3pjrOCgpGj4x+yMO+agAmYgAlcKQHP4Fxpw1otEzABExgS0M3/N9rypWUYI78prDNWtP+rwn6Uj1GDMZTe2dkpDAMlGDfa7/3/"
					    "lY6ZdcnL1uGfTvHVcv9MNb2ncpiJeU8+"
					    "8n0cj3fyMXjy2am8sJ908FEe4H0TMAETMIHrJWAD53rb1pqZgAmYQJVANAj42ln3bo3CmJ3B4Env0LAs7e8UojDe1cGo+Y/"
					    "2+V+04UwNBg7v9Ow5pa+Wu5d4OuCxkmCoITuyJqMK46Y2O0Ua5LMzARMwARO4AQJeonYDjWwVTcAETCAnIKOAm31mY97PDASSfKKtW+"
					    "IV48LsjvY7Q4iEBcfMSjI2htFj5WL8DI2PJ6rvx0EhLD/DsAnvAsl/"
					    "qnjyJveBdoZ5UlzR8EqR9k3ABEzABK6LgA2c62pPa2MCJmACowRkGGBMsMwsLNmKxzv5GA4YKfnHBEbLGkSm/IPgcFgtV/"
					    "UOZ4KQhSVyU0vKmLHJDRyOXyofy9e6JXdRGHReqlcswp4JmIAJmMClEHhwKYJaThMwARMwgXUEdOPPjT5GAf8NgyHAeyufa0szHBgGpOmc0jDTM+"
					    "mUbi9vlmkvrrXcrIzSbjBaVBbGTTKi2B86dOIdIDsTMAETMIEbIPDwBnS0iiZgAiZgAvcEeI8GQ6D33zcyENIsCsvTmN1JRg5pX2prdbwTw2enh7Ml"
					    "a8st1f9MgciK4UJ9fCGNPxnFmBo6ZoOSjsM4H5uACZiACVwZARs4V9agVscETMAEagRkDPxPLY7waJisMQSY7SE/s0Kd26Dcrqy0ozIxaNiSy/"
					    "dTGDphpOEPja4ujXdMwARMwASui8CD61LH2piACZiACZyKgIwIvr7G/"
					    "+akGaClomxpjCSja6kszmcCJmACJnBhBGzgXFiDWVwTMAETOGcCMm6YwflUfpg5WSJrLGNJ1l4elcOSNb6+tqXB1KvDByZgAiZgAudHAAPnL1Gs5J+"
					    "flJbIBEzABEzgYgjIoOgtUTuh4N9JlvSfPicUw1WbgAmYgAkcgcBfUx2ewUkk7N8UAd30rF1Cc1O8rKwJzCWgc+xubp6t05+"
					    "DDFvr5PLOh4DHkfNpC0tiAkMCfGTgvzEw+cM0PjaBqyKgQYl/Y2fJyuSyFaXlk7MstcEgelcby138RFggcOZzz8G/"
					    "JmACN0mALwZ+rO2rm9TeSpvA+RH4dxLJMziJhP2bIMBgJEXfll/84lIBAgbND3EAY9lN7Z/"
					    "SC1lvIsh8bqKZraQJmMCQgMaF8LBLPu962ZmACZwRARs4MxpDFzGe1Fzk0ibJzazF5u6cmEzpqHhmYl7In/"
					    "N+wPsZNNr+5MtuMnnOYdd8zqEVLIMJmMBJCGg8YfZm1Uc1aoKr7JPfc0iGyXuHc5CzxtDhYaXFZBteI6eb+h8cnYQsN+ILPzzF/0bbjwrrnuRrnz+/"
					    "4yaWF1N7/wWhY57Q8Cd2e8uaFEa53DTjUy43wdxMP9aG48/o9vLdR7X9rq1D+b/Sxr+X9/Rqq72cSmVVmZBD8bCESXJ8PnbVVL7yw/"
					    "UTbQwo+c31jrK1jenI52L5F/dmp/LydiM/f1g46ZSPtFxU3td+6Y8HJ8u4hARz+dwKl6m2M4cpQuH6cRPn0DSJP1PU+o3CDz4G/"
					    "SnFYfcuVEfGFfrr0cbXw7bCn6WrPUbHVcWP3gf8WVJ9r9bm9RyXGVPTU+EHPX9V/mgbXibNaakfTCe5nhRqZKaTf9J2p31ukHPjhg5G/"
					    "N+Ik985HXNT/"
					    "ZH84rsXMfx7pcEAolwMGnxuhrlBXr2sSWVR99o6WE7ERXjUKc2kEaA0U0zeUyUfKt03adMxsyfkW+"
					    "SUlzK5mFJGrZwxHT9BliWVKx9MaNdiHyiUGRgq/dkbN1G3ggrtQTP4XAyXXPstGOXlaf8iOQx06B2aUQ/"
					    "H5MFCXsV+o7K2GB8mZZ6b4BZ0hIn0ZFxhfKmNSx26FiaxnOo9R1fYyE5LPSPZh1HFcXULOWNFxX49FOIKjot6iuMxzt9iG14B06oKN2XgRAofye/"
					    "dpKpzhek7+dzA3hVoYRSEjlmIS0F75caI3+Uzk7GFW1VHPIkwOqYuwi3yTjF5qno6Y0L7GJCv5Zf4NrFR3l+"
					    "0MQOUz6r08iqett3TUeHM2lXz9QoZHCgvutI3qL91qpf6ev1sUOw5Hba0d1XemXwuiUuu8ypGeUFx/1I5FFTpgsyoQ9G0s4TXWL9ZNT40STw/"
					    "0S3omKgwvrC6YMq1MJkaX6fqIL6lnpZydrrGF8dVZd5CTmQY69dNMl5IojE9D3r+jrThhaCbL+bD+VkuPgc32mGGRg3OBYD9l9ofu/"
					    "Hmhrk3q1OgQLnPCuHk62aKCvFzgraoI1yoNpCpyiRy/"
					    "Uk+xsDb2jipmTXrLSlT2KFcScfaxaOTQfJxscYgpS+E5XQKY9kiM0efaV9eMJL2ltkpDqPxhbZftbH/"
					    "VNsrbcEpnrajnA+0H5a5yae+nfw57wSRZdSpvCQLunygjf69eiZJZczmk8kyhwvyf6m8zIKy/3/"
					    "aWOq3yEBV3j2XyXVwRlSe1dfMIebjqVvTssg9JUcCMnn29FfcQfuqyt/rR1HX1G8vldHm/TZrpyKTQRNvMT4Mirw/"
					    "PGSfOHMd57Qp4w7jTPdgrwizLXBsfC2eP23F/pmq1KbEKrx2zSmNq1U5Y1lFWafafIFsfyq2cC+Tae+auLDIXVbmSc/"
					    "fTP5SG2bR17X74LrUGddGnY0bTNw/tc9Sp5+1/"
					    "a79OwJLTnEYQdV48sQ0XAjpPMERpo0lZdS1+"
					    "gZlwzpYosdFeLGLsowxYaCFBYYdJ3ZuUOrw4K6k4xPViixFJ52I450sjJfX2jBWdjrmxvqtbONT0T2nONqevsT7Pwxu6E5fC/"
					    "0hxr8nn7J5aZT0OOQsPmVTGm7wKXOJ+5cyvYr1vdQ+x6ucyprNR3mWcuEpaOCiMuhnGDZbczomo0UcpDt9iHOp6pRmaT8p6h/"
					    "bbFZfrQpXiFD5tX50DYya+20BzV5QbIvqdSXPoLScHzBsGoOUvrnfRDkO0icOqSN8WvUc0XFOm9K3i9cpZGl1koUyuO7tOcUVz5+"
					    "9hBMBNX0VPnbN6Y2rY3JSveKLsir8HM91RP6Xts3GzSk9qTA5pT3Y+ZvqiH6vDQdxV3f48Oo0Glco3Sxww82SM25GuZHdeyKvsOToeG/"
					    "SQcWnXC5Iz9VRUxJuyp7puHihSolm+"
					    "E11xBOF5VTBqCiUjzxrL8JTTN6NelNXeJql41faR6ZNZytUXsmVdHykhMV2lGz0Bd6fSjcHtN3fSwVXwnhKhSHbm2HQcZo1eax43kViJot6kG8nn89"
					    "PM8NScry3hcyznMpj1oylgKluZGI2ii3UO6tAJVa+pXwWcVGVGOD5e2v0nR5bHSc3m5P0OTajpRw45zG2x9ym+"
					    "quiJX11TL4ubqIfXTwjKTqn33ZcRnammORZm8aHLMOcfnOwPiF5Dqkj6rbqWdRR+"
					    "ee0KePL2rEVmYvj68T5Q745rqbv2DWH8SPXrygnQkzIOtXmS2RLure2d0offMm7+"
					    "Ziggqf0zGU45Pmb1zNswzzu6vYfXp1G4wpxseJGNN1kYwhglPA0K4UNS+Amc+rGMJU7ZijtVMd7KotOP+VYmjO8oWuqQwVzovDkpOZ6N/mqh5vX/"
					    "KJFvicK50KRO6at09R7C5M8L/ssVSNfcCprDYtUTPRxaeQAACAASURBVM3v6RgTcdGstSNP6bpZNslGumQgxOyjXi+/"
					    "UtIGyVjaqbzQlvKfKrxbrqhjGAw5Kyi44cCawqd8jMjcuGXmChmC7vKXtHdPv1hWC59ePonRxCWmQ87Oqc7h+ZDilnA6NqM5HHK9MX5r/"
					    "eNQ+qd+MtpXD9CPLp6RGoT+nbffLvXbLXjF8rvrSuoA0W8dH1K25vMm0+HgfWJjHdG1Sc+ajlGeYptS+MBxjXqUhy1sd8oI52FelvZ754jKJk24Ds+"
					    "tZ6Bvrt/YNWc4rtbkROyqrMM4HY+NC62yUSeuqb3vk/Z+p8aEJfcrPQaqradnr/Z7ubk3Hb2HzPIs1XPYhlmR17f78PpUGtWIDpbf/"
					    "JH4pTYMnNp7OHsXLTINHOXWDKQuqergYkTHXOIm61D5n6lg9ONEYSlUdzOdVYgx090sKs2Qx05hLNUak7PKRPm46P2e1Zd2e/"
					    "Ir3RoWqcya39OxligLR+aOSRY+uRv1HeYPF58Yt5N/FwuCQWdIaf9DxXUXNO2zbBJHecz2dBd3xXHM4MOSypBHfu+T2DomH7rnT/"
					    "2pr+"
					    "sHSrOkvYf6qchxF2UZ5qtxYfAIuqZ88vMbubu8NsVVOZFO8TxEgBd60xeZPQtlyEemozGK9bVyoH90ba59jrkusTyI8yU47Vf1V9xoP1H8pP6xmqm+"
					    "ulk/"
					    "ijIdjRH6qc5VfSQyau63qm8Wr5lMEIf2Gh2DVObifhP13bRPHEJH5BzTM8ZX217xzW1KWQP3WMd3eZhkmdXuMW9tfB2eI11VC+"
					    "shP206ec2JFQ3H1ZqcJC/KKjkJH8bVxoUm2cbaW3G05xNtLC1nLLjTxrLzrl2iTFNjwqz7lVhmq54SafX5O6knlcgN2/A+9Ep/H0gvOimN/"
					    "eZKdQxqxY7Ofn7jtFM4N4t0+hdEDp3i6dh0iqJTPHF05F65xcQLA1vriLrs5DMD1N3UDqpF3rEZnkHy/"
					    "UOVPcYkXUy6jEqP4cWyqYMx6iq73ynpSP+mnUpuTx/"
					    "J2jLTtlM6+g5bcDrmQsOFGV15gpM7ZGAjHzJSb3A65uaDpX3cjNMnH8sfGl2snw3vACmOeh5ryx317hQX5JFPHYQ9I3yFm80nytDKhXSBi3z6T+"
					    "dUDly6fhOPpzhh+MGJfo6x38mh46MyinV39et4rH9IvHtDW+mQ81E8DjITqfC1/aRVf9ojtInq7PVV5Fjoiv1I5cPn2Iy26CPI3NRv5/"
					    "KawyS2D32lO0+"
					    "G9SnN2n5DkZv2ia11RMBGPcfafk2b0gapPyDOIicd9s6TWNBeuNI2jVMTgoRxRmUVrzlZ3t64OiInWYqyKg982YLT8aGvh6xGYeXJK218dpv9rv4gx"
					    "AHGhDl6Ki1c6Ttrzt8WPVG314YEXKGDYzBgH2oHhbHgCRw2vIIu36kDcYPNUwIcN//dbI32eeKJC1/"
					    "J0nHpKRjvTfDRgN4Np46r5d4Xuf53Th1Ky0ky1YZw6J5erJCwyETlccFiAIENsiATabuZCh0vciqDvorsXIhpDy7u3YyG9pMr6Ujbkb/"
					    "kmOVguWKKR+aXpYSVsJSfF4IZ4OhDT7X9qjLz9kD2pwoLN/Hy05I/"
					    "BQe9KGencBjmszCE8b7O9wpPT9tgMFy+hN6kS+"
					    "y5yedpVS6Dgma7pN9cPinfFBd4vZCcGHDIyjlK22Kg0Hfy8w6GVU6K25FeWzCMBnmJPgWjVg7PJB/9MOitfR5SoAc3C8mN6q+8U/"
					    "2kVf+xvppkmesnDqV+lOKm+spqRghNv9C2to/M6bdzWZF+kol0aB2D1vYb5Dlkn6i2+wwdk4xw2ynf3nU0ho+1/"
					    "Zo2fazy82sV1S11yDi850j9oXT+LK2n5XxKZXPtoA/kriQn8WOyprhqm8cKWmSb6tdpjO3GS3GljXOHXoccN6t6Spatzt8WPdG51IY5i2vYp625T/"
					    "rm4TVoM6WDOhE318UbbMVxE1Gb7UhFc7PFidQ7McbKTRnX+jProGHDjbHyPdeWOn0QQ8fcuO/"
					    "kb3ERLjKJ5XNDlt+UEbzaRbl7bTAsdERH5PlgmJ7jWO7wwl1KWgxTfh4OVJ++pEwT6WibNzFtuBgr/"
					    "XCZIUuVUj1cqIYsMJww3qf6c6ymzVN59JfZfKKsSd5qZa3pYgGTnFQefTM8xNA+N7Hfycdwwh2dUat+Sje8FpXacVJ/"
					    "6TjWT5r0b5U5EG38UZnVftRa31aMVM7qPtIqcyOevWQt5StNdWwbFLi23+xa5BnUOXnYUuYMHalvUk+VV237FnlGlOJvELYa9/"
					    "bGV8lWPX9GZBqNUpkt15yd0sEVf3jvsCdnlq44ZqiM1vGyRbbR9lZdPLjmHOnGSx0P742aronoNce16BllK96bDuparafqqrXhoKrrOXxwPaocTpPY"
					    "UfkKVXpycrjK1pUcLq6SMzyZLBSVLkaFqF7Q8CLWi+TgjJnUdHwlsXmid64OY4VZjI+jgMy+8EQwd2FmLLbvh/"
					    "KHgyn6TRoUeYFxf7K9C3lOFTTKSUx4IsYMCB/FwN/Jv8OP7tIZjeofdRzrJ0v1T/zG/"
					    "HPpR6OMDthHxtiU4o7Ja5RJFG6s35Tkbwk7po7IM6pnQ9u36FRLEx5M1SKz8EkmkpPr+Np7jsl6Mpmmdovj6kZyTtU9Fj/a3srI/"
					    "85xP8RqB1ZPsP9aW+4OeU3M61mzv4WexTZcI9S5533riy++oHGZQmNd+5YnxLnrPls+"
					    "8aGDdMvbZhdwwgzxxGY6eckNcFXynIn26Uu8O7JpHdXKBxGql4tXVUfFc8P7D/"
					    "lDw2BQ0vkdSmaMa57MM5WOEcR64u4JWYznBoUnVXYFArfAKOpY7Ce3oH+h2WcF3SqjsX4zC+CNJo78+DhPeEdyKwwq7+"
					    "T3HJJhdFxF13OQcwlzyc24evXjZksbLuF3jnmirrTpWzexRG2rRhAw1seHab6tyjxiOfkync2qzZlo/"
					    "9SGw5SO6QlGZxhsBuLwBdHveBr1WD5P9no66JiHEzZuRtrhRhhV+8mN6D/SA6ajbphRtd9MU3MKEeAJO+PLpk798RzuOabG1d2ZyDmb/"
					    "Q2d75NtOBveBWTwDM4FNJJF3I6ALmhMVfMSu2crt8PqkkzABEzgJgloLLmJWYCbbFwrfXEEdD4y4xhmcB5cnPQW2ATWEeALLulLZOtKcm4TMAETMIF"
					    "bJ8B40ptRv3Ug1t8EzoGADZxzaAXLcDQCsu7vVBkzOLyMbmcCJmACJmACiwjEccQrAhbRcyYTOCyBq38HRxegPw6L0KVfKgH1jc3XTF8qC8ttAiZgA"
					    "iawiMCXGksWZXQmEzglAfXbt05Z/"
					    "6HrvgUD56ob8NAdxOWbgAmYgAmYgAmYgAmYwCUR8BK1S2oty2oCJmACF0BATwb5k1pevj6pkwxeinrSFnDlJmACJnAaAszg/"
					    "CVWnfzTSOJaTcAETMAEDkZAN/t8CvhFrCAZH88UzntpmzmVl/434+RfKpQsX2njizp+CXyzFnZBJmACJnC2BP6aJGMG57/"
					    "xIPkpzr4JmIAJmMD1EOBdAf5Xg42vCb7Rxp88b+ZULkYUf0K76s9+lX/LLx1+r/L8vt1mreyCTMAETOBsCfw7SeYlaomEfRMwARO4bgLPdaP/"
					    "YaYiN/3vKOy9LGztLmVuYZykGaa18uykH8bWh/"
					    "IxvuxMwARMwARugMDVf2TgBtrQKpqACZhACwGWab2eSihDACPld20sXXuk469SnmgksMyN+A+0vVTYLylePoZEdTmY4qplZ2VM7qocDDUMsw+"
					    "0z2xUcNpntqY7TuHyg5Ej/4cszLsmYAImYAJXSsAzOFfasFbLBEzABHICuvH/Rlv+vg2GyG8K6wwU7f+qsB/lY9RgDKV3drQb3L/"
					    "0+yrGv9Q+x8EpjFmXvPwY08VPld1LXztQPczEvBdl4GMGHO/kY/DkM1QEJ/eTdj5KB/"
					    "ZNwARMwASum4ANnOtuX2tnAiZgAnsEojHwsSLeT5EKY2kZBk96f4aPBPw9i+"
					    "eLZK8Vnwwi4pnhCQaG9jFweK9nz02VvZdhPOCxojHWkB95k1GFcVOboSIN8tmZgAmYgAncAAEvUbuBRraKJmACJpAIyCDgRp+"
					    "lYu9nxgHRn2jrlnfFuGTMEM+MT7787AmBWRkYOsnYICp31bKVH8NqaHw8UfiPeQHaZ/"
					    "kZhk34Opv8pwojb3IsmRvmSXFFwytF2jcBEzABE7guAjZwrqs9rY0JmIAJVAnIKMCQ4CtqYblWPN7JD7MxigvGw7AAxWO8kDefIcEYyt9pSWUMs3NM"
					    "/lrZudEU8qo+lslNLSljxiY3cDjmnSCWr+WGGWUie7F+Iu1MwARMwASui8CD61LH2piACZiACZQI6Kafm3wMAv4XBiOAd1Y+"
					    "15ZmNzAKSNM5pWGmB4fxsNNxmKGRTzrCnhGOU9he/vuY8LsXp/Sp7CzZ7N1gtKgsZElGVJB1UBLy8g6QnQmYgAmYwA0QeHgDOlpFEzABEzCB+/"
					    "+8wQjo/"
					    "feNjIM0g8KMDLM7ycgh7csIjtmUHxTHezgYOe9qGy5xU1B4J4ZPTw9nS8bKJt8Sh3GFvBgu1MdsEn8yijE1dMif9BzG+"
					    "dgETMAETODKCNjAubIGtTomYAImUCIgQ+B/SuEpLBolNSOA921Y/"
					    "pUvSUtZc59ZGcpgZqhzE2V36ebsRFlyefL9riilw1DbRRm6cO+"
					    "YgAmYgAlcL4EH16uaNTMBEzABE9iIAMvZ0tfVqkXKiCANX1ZLs0DVtBMRwxmgieSj0cnoGk3kSBMwARMwgeshYAPnetrSmpiACZjA5gSisfJP+"
					    "SxNm3RKxwzOp/"
					    "LDzMlkhkKCWEYhZl6QymHJGl9f29JgmieEU5uACZiACRydAEvUuPAzIL05eu2u0ARMwARM4KwJROOAd1ianfLwbsxiA6e5oumE30mOJsNsuiinMAET"
					    "MAETOHMCrCIIS62ZwWEpAV/W4c/T7EzABEzABExgNYFzMCzOQYbVIF2ACZiACZhAKwG+ohn+PsBL1FqROZ0JmIAJmIAJmIAJmIAJmMDZE7CBc/"
					    "ZNZAFNwARMwARMwARMwARMwARaCfgz0a2knM4ETMAETKAjoOVffFntW20sc+Zdl7DuuUvgHRMwARMwARM4EQEbOCcC72pNwARM4JIJyKDhDzX5s88/"
					    "5P94ybpYdhMwARMwgesi4CVq19We1sYETMAEjkZAxg0vdOIm/yPnPpl/TcAETMAETODwBGzgHJ6xazABEzCBayXA56N/"
					    "k6HjTzFfawtbLxMwARO4QAI2cC6w0SyyCZiACZwJAWZwPHtzJo1hMUzABEzABO4J+B0c9wQTMAETMIFJApql4WMCX2rjz6F/"
					    "14Zhw4cGXmoLTmn4c8/n2t7W9quOvwkR+tH+r/L4A9AfUph9EzABEzABEzgEAc/"
					    "gHIKqyzQBEzCBKyIgo4SZmp+1YaCwfaV9jB1cPoPzIsb9pPAUHxLphz+TfpoO7JuACZiACZjAoQjYwDkUWZdrAiZgAldAQAYLszLfa8OwYfYmOfZ/"
					    "UVh4/0Y+szkYNrjwbs79bvf7THt5/"
					    "i7COyZgAiZgAiawJQGWqP0lFpj8Lct3WSZgAiZgApdNgJmYRzJguuVmUR1mdfLlZnxsgE9H4z7R1i1dCyETxo3yUs9n2vj0dConZrVnAiZgAiZgApM"
					    "E/ppSMIPz33iQ/BRn3wRMwARMwAQwVvJlaDsZIMzq8E5O9/"
					    "83CkszOR8rnPg9g0hpcoNISXrua46UxsZND4sPTMAETMAEGgn8O6XzErVEwr4JmIAJmECPgIwNDBW2zpCJCTB6MEZ6hk+"
					    "Mq306mg8PjDkMo1J5Y3kcZwImYAImYAJ7BPwVtT0kDjABEzABExgQGL47gxETZlpk5GCY8C5OSsPMTm8WJqYJMzSpXIVhOL3QxtfV2OcDBK+"
					    "0dU5pWLKGe1cbS9ioK+xn9SnIzgRMwARMwAT+JOAZnD9ZeM8ETMAETCAjICPiTofMqmC0BKcwjAw+KPD6PmT30cDYwLjJ07P/"
					    "Tp5G+xg0fJXta+2zlI06KLObwVE4xs0P8vli22NtpGX/iTbS2pmACZiACZhAkYBncIpYHGgCJmACJhAJ/"
					    "EP+t9HgYJkZsyzM4HwZw4YzM3xtDWOEL6+FpW3axzDJHbMx/"
					    "1R4mvUJcTrOZ37usngMorRM7tkgXV6u903ABEzABExgZwPHncAETMAETKBKQMYEszgYOUNXCgtplOfTYeLBMe/w5Pn5Ils3e0NalZF/"
					    "pID4UKbCcyOIpHYmYAImYAIm0CPgJWo9HD4wARMwARM4JAEZKMzGsOWzN8wI/"
					    "UhcjO9E0DHL0brZHB13y9+6RN4xARMwARMwgYyADZwMhndNwARMwAQOS0AGCjNCbMFFAybN4KSvs/"
					    "HOzn9iEj4+kBtDn8dweyZgAiZgAiZQJOAlakUsDjQBEzABEzggAZan8a4OHxp4w742DJlfkwEk/zttfGggvcfDPs4Gzj0H/"
					    "5qACZiACVQI2MCpgHGwCZiACZjAYQjIcOF9m947N8OalCZ/"
					    "j2c07TCvj03ABEzABG6bgJeo3Xb7W3sTMAETMAETMAETMAETuCoCNnCuqjmtjAmYgAmYgAmYgAmYgAncNgEMHF7eZCkA66DtTMAETMAETMAETMAETM"
					    "AETODSCLCcOSxvxsB5Rxt/1MY/"
					    "RduZgAmYgAmYgAmYgAmYgAmYwKUR4Iuc4c+"
					    "nvUTt0prO8pqACZiACZiACZiACZiACVQJ2MCponGECZiACZiACZiACZiACZjApRHwZ6IvrcUsrwmYgAmckIA+3/yeqv9WG8ub+a+a/"
					    "HPOJ5TMVZuACZiACZjAPQEbOO4JJmACJmACzQRk0PyixO/L/0N++BPO5sxOaAImYAImYAJHIOAlakeA7CpMwARM4JoIyLjhRU6c/4DznoN/"
					    "TcAETMAEzoiADZwzagyLYgImYAIXQuAjyfmbDJ27C5HXYpqACZiACdwQARs4N9TYVtUETMAENiLADI5nbzaC6WJMwARMwAS2JeB3cLbl6dJMwARM4K"
					    "oIaJaGjwl8qY0/hf5dG4YNHxp4qS04pXmknefa3tb2q46/CRH60T5pP5UfPkYg/"
					    "2MdUx7v8XgGSCDsTMAETMAEtiXgGZxtebo0EzABE7gaAjJAmKn5Wdvn2mf7SvsYJ7h8BudFjPtJ4Sk+"
					    "JNLPC20YSclh1HD8JAXYNwETMAETMIEtCdjA2ZKmyzIBEzCBKyEgg4VZme+1Ydgwe5Mc+78oLMy+yGeGBsMGx7s5b8Lenz8YSd3X1pQew4gvseVl/"
					    "plae0rzpbY/tFG2nQmYgAmYgAnMIoCB85eYI/mzCnBiEzABEzCBqyTATMwjGRndcrOo5fD9Gz428EOM+0T+13F/"
					    "Fw0UDKV8tofo14qrGjiKD2UoDYaQnQmYgAmYgAm0EPhrSoSB8994kPwUZ98ETMAETOB2CWCs9AwTGRwYKywvy2dk0kwO79YQnxtEGEN3BUPlV4WPOc"
					    "rq1T2W2HEmYAImYAImIAL/ThQeph37JmACJmACJgCBaMhgrHSGTCSD0UN8yfhgeVq3dC2mJ6yXVnlZdtabmYn18a4Ohg/"
					    "1PtX2SlvnlOazePCufGaXMILCvuLGZoNiNnsmYAImYAK3QsDv4NxKS1tPEzABE5hPYGg4BCOGYmRUfKyN2Zzk2B+mL4U9Vb7O6NE+Bg0fMvha+8z+"
					    "EIcRlKfBuPlB8Xzk4LE20rLPhwpIa2cCJmACJmACHQEbOB0K75iACZiACUBAxsOdPAyMzoBRGDMmGBOvteE+"
					    "Ulhu0DArg7ESnOJYnoYxkpdB2HBWiNmYfw7K2uk4n+VhmVuqizpSGc8Unt7/UbCdCZiACZiACex2XqLmXmACJmACJlAi8A8FfisDgtkT/"
					    "t+GJWPM4PCFM8K6jwlof6cwvrbGzArhGEj8Z87ftFFGCuv9R47icJ9oo67kMIK62RsClX/4Xk/"
					    "6T53cCEr57ZuACZiACdw4ARs4N94BrL4JmIAJlAjIqMBIyQ2PlKwUFuKUJxgeKWH0x9IzG8OWZmfIghH1o8oifBflYJd9ZpC62Rwdv6MtzxvS+"
					    "ccETMAETOC2CXiJ2m23v7U3ARMwgZMRkHGCEcUWXDRg0gwOMzs7hWHE/Oc+Rfj4QG7QfB7D7ZmACZiACZhAR8AzOB0K75iACZiACZyAADM8LG/"
					    "jQwNv2NfGV9RYzhYMIPnfaWNZXHj3Ju7rMKTFtzMBEzABEzCBjoANnA6Fd0zABEzABI5NQMYK79v03rkZyqA0+"
					    "dK30bTDvD42ARMwARO4PQJeonZ7bW6NTcAETMAETMAETMAETOBqCdjAudqmtWImYAImYAImYAImYAImcHsEMHD+EtVO/"
					    "u1RsMYmYAImYAImYAImYAImYAKXTOCvSXgMnP/Gg+SnOPsmcPEEtHb/nYtXwgqYgAmYgAmchIDHkJNgd6UmsJTAv1NGL1FLJOxfHQENTHx1if/"
					    "NsDMBEzABEzCBJQT4TDljiZ0JmMAFEfBX1C6osSxqOwENSB8r9dvyv2rJpXT89wZ/"
					    "LMiMz7vavleYv9YkEGYjCHYmYAI3SYBxQNt72p5r++YmIVhpE7hAAp7BucBGs8jjBDQIYai8kD/nTwAxaH7QhkFEvvB/"
					    "G+M13Uys2dxMU1tREzCBIYE4Lnwqn7HFzgRM4AII2MApNJIuYh9r40n+"
					    "RTnJfLBp9HNh0qjjl2q4r2c23vtZetqePxi0uydgNu4JJmACt06AMYWxZVN3SWPruci6aQPceGGN91QXSekql6ipwVhuxB/DsUyJKeUfFfaD/"
					    "OC0zz9mcxPLv2PnfyC30/Fzhf8m/7eQOP7omDJ5so9PmdwA8zTnsTYc/"
					    "8Tdy3MfPO93TT3K+5W2r7X1dJonwX5qlVdkQkrFwREmyT1SWNOysJRh6Cs/XD/RxhOz/"
					    "OZ6R9napnT8RGlmMVD6vO0YxPh39UmnfKTFsHxf+79MZrjABEvY3AKXlqY0h3FK5rPPp8ZE4UcZg/YlOkzIpekpeb/"
					    "R9h9tjPWbPABTOdWx9TDU66VKltGx9RSyqs6rH19pkZqeCj/4Oa86Rtu93mPOP+bB+Ys4X0I1GO9O/"
					    "KTtTvvcJOfGDR2G+L8RJ79zOubG+iP5e+9exLDvFY/"
					    "xQ5lc5PC5EebmeJMlTSqPutfUw3KipqdMSjc5y6E0Y0x4gf9DpeHCHzYdszSMPIuc8lImF33KqJVT1VH5MWpzY0WH7U75YULb7vWBSimBodKftXET9"
					    "aqo0BY8k81FcBlqvgWnQZkXyWGgQ3doPh2Kpp2FvIp9RmWtHRuaZF6S6Fb0FBvGFh6+jboWHkpTHVtHCx9EttQ1yDJ2WBxbt5J1rOJKXPFcqKQ9i+"
					    "CF7VHUU2Ud65wvtvtZAF0hxFUaOJHHR/J7N6nqLGEJl/zaExgMg9DRKkz3yozpfpfPTMZWbnE98YTA6KgZB7mMLTKPMXmqerqXLrWP8fha/"
					    "l1eyZx95f1FGzNAVSNF8bRrTccau0kxVC660jeQIfSVyUz3s4S9ftaQ5xRJWtq6KtcCNhial8BlqPMqTsPCdHypHAqqhCDzqZEphy/"
					    "hNdZnate3rcegsjb10FvRk2sabTDlWniMja1T5efxLXXl6av7us7XxtatZK3WXYkYOxcqWU4evKQ9xvQ8+Dk/"
					    "0u4nh7lGgIdrMp95Xm62wwyNGo8Ox/5L7Y/"
					    "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"
					    "ILIoVM8Jyss9pziCOfk65W5l3BlQGs9UZedfGaAuhvbrHrkrc3uZMnGd1V2jUm6MHQFKC1GF8umDsqoq/C+rUo6cjEutqPC9/"
					    "SRvC0zbTulo++wBadjLhxcaNGXp1K5e6MDNvIhC/UGp2Muuizv42acPvlY/"
					    "tDoYi1seAdIcdSTn5vUuVN4kEU+5RP2jPAVbhGbKEcrF9IFLvLpQ51TOXDp+k48nuKE4Qcn+gHGfieHjo/KKdbd1a/"
					    "jsf4h8e4NbaVDzkfxOMhMpMKP1U9oj9AmqrPXV5FjgSv2I5UNm2Pz2aJ/"
					    "IHNTn53Lag6T2Db0k+4cKdWndGv7DcVu2idOpOdY26Pj0nblWjy8XlPeLCcme+"
					    "dJVsBenNI3jVNZGaXdILfKKl5zsgxcB7qxdULWLFvTblE31UF7sAWn40NfP1m9wkqVV9r4axD2u/qDEAcYQ+boqbS0wyNta875Fj2jurteu6fAC/"
					    "Tp38GYf3iBwldFVofgJhurH8fNfzdbo32eeOLCV7J0XHoSxnsTfDigu4Bpv1rmfXHb/"
					    "M6pR2np9MOTMRcEBt2TiDxiwf4eE5XBxYcBBDbIgTyk62YpdLzIqQxOMmSnk9IWXNi72QztJ1fTkQsoMyAlx0wHyxWpA4fcL8Ne20/"
					    "Kz4uQb7TRh55q+1Vl5u2B/"
					    "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"
					    "eTdj5KB/"
					    "ZNwARMwARum4ANnNtuf2tvAiZgAnsEojHxsSLezyIxcHgvZ88pPcvWMIbSuzl8gODvewnbAh4rGcYW9VNmMqowbmozTKRBPjsTMAETMAET8BI19wET"
					    "MAETMIE/CcigwFBgqdn7mXFBAmZSkrHBce4+0UG3dCzmSzM/GD9D4+OJ0vyYF6B9lp9h2ISvs8l/"
					    "qrD8fZ8PdDzMk4ooGl4p0r4JmIAJmMBtEfA7OLfV3tbWBEzABKoEZFRgiPAltbDcKx7v5GN0sGHklBzhwTAZRirv3js7CmMp29SSMmZscgOH45fKx/"
					    "K1YDxldSF3sf4sjXdNwARMwARuhMCDG9HTapqACZiACYwQkNGAkYBBwf/"
					    "KYETwzsvn2sLsSDQqSFNyGBy9OKVnFmitC0aLysK4SUYU+0NH3bwDZGcCJmACJmACXqLmPmACJmACJhAI8J83GBHD/"
					    "77JZ2B4J4ZPRw9nS1iexsxPMnIo56W2Ne6ZMlMmhgv18YU0/"
					    "mR0OHujoPCBgVxOwuxMwARMwARulMDDG9XbapuACZiACWQEZEj8T3ZY22VWBkOCmZ3ORYNnUwNDZWLQsCWX76ewndJhTOEPja4ujXdMwARMwARui8C"
					    "D21LX2pqACZiACSwlICOCr6Tx/zZppmZpUVsaI8noWiqL85mACZiACVwZARs4V9agVscETMAEDklAxg0zNZ/"
					    "KDzMnS+"
					    "qKZSzJ2sujcliyxtfXtjSYenX4wARMwARM4PII2MC5vDazxCZgAiZwUgIyKHpL1E4ozHeSJf33zgnFcNUmYAImYALnRMAGzjm1hmUxARMwgQshIMPi"
					    "7tSinoMMp2bg+k3ABEzABPYJ2MDZZ+IQEzABEzABEzABEzABEzCBCyVgA+dCG85im4AJmIAJmIAJmIAJmIAJ7BPwZ6L3mTjEBEzABExggoCWh/"
					    "FHoN9qe0cb78Js+pnoieodbQImYAImYAJVAjZwqmgcYQImYAImUCMgg4Y/3Hxf/h/"
					    "yf6ylc7gJmIAJmIAJHJuAl6gdm7jrMwETMIErISDj5sOoir9kdiVtajVMwARM4BoI2MC5hla0DiZgAiZwGgIfqdrfZOic/"
					    "Itqp1HftZqACZiACZwjARs459gqlskETMAELoMAMzievbmMtrKUJmACJnAzBPwOzs00tRU1ARMwgeUENEvDxwS+1Pabtt+"
					    "1YdjwoYGX2vac0pOWdLh3tX3umZ7Awj8mYAImYAIHJmAD58CAXbwJmIAJXDoBGSbM1HyvjY8KYODs5KcPC+zN4MQ4DBo+REBa8mPw+"
					    "EtrALEzARMwARM4KAEbOAfF68JNwARM4LIJyDh5JA0wbjBYgnETNWL/F4X13r/"
					    "RMTM9H8oPxk1M+7l8yqg6pccA+kwbRlSet5rHESZgAiZgAiZQImADp0TFYSZgAiZgAokAhscjGR3fpIDoMyvzwyCsO1R6Zngwav6pfT5GMOW+"
					    "VoLPbNxMYXK8CZiACZjAFAF/"
					    "ZGCKkONNwARM4LYJfCL1e8vQZIQwq8NMTVqm1hFSHDM7X2nDAMJo+"
					    "VVhGElT7mMl6NUzlcHxJmACJmACJlAi4BmcEhWHmYAJmIAJ7KIhgzEzNGQweogvGiQKZ0kaS9owcthnZualtm45m/Yp94W2X7Wx/"
					    "1TbK22dUxqWrOH4SAFGEkZQ2FdcvlxOwXYmYAImYAImcE/AMzjuCSZgAiZgAlMEhsYES87SBwQ+lrHBbM5O/"
					    "pfaMFiC035xeZrCMWh+1va19ln6hqHEF9k6g0nhGDc/yGc26LE20rL/"
					    "RBtp7UzABEzABEygSMAGThGLA03ABEzABGRQMOOC0REMGIgojFkUDIzXHMt9pLBkAKVlafcx+o3pv5FPWckxG4Pxk/"
					    "KFcB3nHxe4y+IxiNIs0jOFV9/9SRXYNwETMAETuF0CXqJ2u21vzU3ABEyghcA/"
					    "lOhbGRXMqLytjWVkzOAwW0MY79kk90w7Hyr8uXyMEhyGyvDz0J8onHKTwzDqZm8IVJ78owbEhzIUnhtBJLUzARMwARMwgR4BGzg9HD4wARMwARPICc"
					    "igYOYlN0ZS9F5YND5GDRClwfBhy2dvMJh+jHE7+dQZnPaZLepmc3T8jrY8b0xpzwRMwARMwATuCXiJmnuCCZiACZjA0QhE42VowKQZHGZ2dtGI+"
					    "U8Uio8P5AYNHy2wMwETMAETMIEqAc/"
					    "gVNE4wgRMwARM4EAEmP3hK2t8aOAN+9owZPikNMYPMzbfaWMJXHj3Ju7rMKTFtzMBEzABEzCBIgEbOEUsDjQBEzABEzgUARkrvG/Te+dmWJfS5O/"
					    "tjKYd5vWxCZiACZjAbRPwErXbbn9rbwImYAImYAImYAImYAJXRSCfwWFpwFA5/oNg70XSYSIfm4AJmIAJmIAJmIAJmIAJmMAxCMg+4T/"
					    "Xur8wGNaJgcPLm/lSgDxN/mJnHu59EzABEzABEzABEzABEzABEzgFAf5Prer+H7UjCMDqgAVaAAAAAElFTkSuQmCC",
					"text/latex" :
					    ["$\\displaystyle \\left[\\begin{matrix}\\frac{K \\left(P - P_{t}\\right) + \\left(\\beta - 1\\right) \\left(c^{2} "
					     "dv_{dy} \\rho + c^{2} dw_{dz} \\rho + c du_{dy} \\rho v + c du_{dz} \\rho w + dP_{dy} v + dP_{dz} w\\right) + "
					     "\\left(c + u\\right) \\left(2 c^{2} drho_{dx} - c du_{dx} \\rho - dP_{dx}\\right)}{2 c^{2} \\left(c + "
					     "u\\right)}\\\\\\frac{K \\left(P - P_{t}\\right) + \\left(\\beta - 1\\right) \\left(c^{2} dv_{dy} \\rho + c^{2} "
					     "dw_{dz} \\rho + c du_{dy} \\rho v + c du_{dz} \\rho w + dP_{dy} v + dP_{dz} w\\right) + \\left(c + u\\right) "
					     "\\left(c du_{dx} \\rho - dP_{dx}\\right)}{2 c \\rho \\left(c + u\\right)}\\\\dv_{dx}\\\\dw_{dx}\\\\\\frac{K "
					     "\\left(P - P_{t}\\right) + \\left(\\beta - 1\\right) \\left(c^{2} dv_{dy} \\rho + c^{2} dw_{dz} \\rho + c "
					     "du_{dy} \\rho v + c du_{dz} \\rho w + dP_{dy} v + dP_{dz} w\\right) + \\left(c + u\\right) \\left(- c du_{dx} "
					     "\\rho + dP_{dx}\\right)}{2 \\left(c + u\\right)}\\\\ds_{dx}\\end{matrix}\\right]$"],
					"text/plain" : [
						"⎡                     ⎛ 2            2                                        \n",
						"⎢K⋅(P - Pₜ) + (β - 1)⋅⎝c ⋅dv_dy⋅ρ + c ⋅dw_dz⋅ρ + c⋅du_dy⋅ρ⋅v + c⋅du_dz⋅ρ⋅w + d\n",
						"⎢─────────────────────────────────────────────────────────────────────────────\n",
						"⎢                                                                   2         \n",
						"⎢                                                                2⋅c ⋅(c + u) \n",
						"⎢                                                                             \n",
						"⎢                            ⎛ 2            2                                 \n",
						"⎢       K⋅(P - Pₜ) + (β - 1)⋅⎝c ⋅dv_dy⋅ρ + c ⋅dw_dz⋅ρ + c⋅du_dy⋅ρ⋅v + c⋅du_dz⋅\n",
						"⎢       ──────────────────────────────────────────────────────────────────────\n",
						"⎢                                                              2⋅c⋅ρ⋅(c + u)  \n",
						"⎢                                                                             \n",
						"⎢                                                                   dv_dx     \n",
						"⎢                                                                             \n",
						"⎢                                                                   dw_dx     \n",
						"⎢                                                                             \n",
						"⎢                            ⎛ 2            2                                 \n",
						"⎢       K⋅(P - Pₜ) + (β - 1)⋅⎝c ⋅dv_dy⋅ρ + c ⋅dw_dz⋅ρ + c⋅du_dy⋅ρ⋅v + c⋅du_dz⋅\n",
						"⎢       ──────────────────────────────────────────────────────────────────────\n",
						"⎢                                                                 2⋅(c + u)   \n",
						"⎢                                                                             \n",
						"⎣                                                                   ds_dx     \n",
						"\n",
						"                ⎞           ⎛   2                            ⎞⎤\n",
						"P_dy⋅v + dP_dz⋅w⎠ + (c + u)⋅⎝2⋅c ⋅drho_dx - c⋅du_dx⋅ρ - dP_dx⎠⎥\n",
						"──────────────────────────────────────────────────────────────⎥\n",
						"                                                              ⎥\n",
						"                                                              ⎥\n",
						"                                                              ⎥\n",
						"                       ⎞                                      ⎥\n",
						"ρ⋅w + dP_dy⋅v + dP_dz⋅w⎠ + (c + u)⋅(c⋅du_dx⋅ρ - dP_dx)        ⎥\n",
						"──────────────────────────────────────────────────────        ⎥\n",
						"                                                              ⎥\n",
						"                                                              ⎥\n",
						"                                                              ⎥\n",
						"                                                              ⎥\n",
						"                                                              ⎥\n",
						"                                                              ⎥\n",
						"                       ⎞                                      ⎥\n",
						"ρ⋅w + dP_dy⋅v + dP_dz⋅w⎠ + (c + u)⋅(-c⋅du_dx⋅ρ + dP_dx)       ⎥\n",
						"───────────────────────────────────────────────────────       ⎥\n",
						"                                                              ⎥\n",
						"                                                              ⎥\n",
						"                                                              ⎦"
					]
				},
				"execution_count" : 20,
				"metadata" : {},
				"output_type" : "execute_result"
			} ],
			"source" : [ "dQ_dx_outflow_x1_lower = simplify(S * Inverse(lambda_waves) * L_outflow_x1_lower)\n", "dQ_dx_outflow_x1_lower" ]
		},
		{
			"cell_type" : "code",
			"execution_count" : 21,
			"metadata" : {},
			"outputs" : [ {
				"name" : "stdout",
				"output_type" : "stream",
				"text" : [
					"x0 = std::pow(c, 2);\n", "x1 = c + u;\n", "x2 = c*rho;\n", "x3 = du_dx*x2;\n", "x4 = rho*x0;\n",
					"x5 = K*(P - P_t) + (beta - 1)*(dP_dy*v + dP_dz*w + du_dy*v*x2 + du_dz*w*x2 + dv_dy*x4 + dw_dz*x4);\n",
					"x6 = (1.0/2.0)/x1;\n", "x7 = -dP_dx + x3;\n", "dQ_dx[0] = x6*(x1*(-dP_dx + 2*drho_dx*x0 - x3) + x5)/x0;\n",
					"dQ_dx[1] = x6*(x1*x7 + x5)/(c*rho);\n", "dQ_dx[2] = dv_dx;\n", "dQ_dx[3] = dw_dx;\n", "dQ_dx[4] = x6*(-x1*x7 + x5);\n",
					"dQ_dx[5] = ds_dx;\n"
				]
			} ],
			"source" : [
				"drho_dx = Symbol('drho_dx')\n", "du_dx = Symbol('du_dx')\n", "dv_dx = Symbol('dv_dx')\n", "dw_dx = Symbol('dw_dx')\n",
				"dp_dx = Symbol('dP_dx')\n", "ds_dx = Symbol('ds_dx')\n", "dQ_dx_def = Matrix([drho_dx, du_dx, dv_dx, dw_dx, dp_dx, ds_dx])\n",
				"L = simplify(lambda_waves * Sinv * dQ_dx_def)\n", "\n", "T_phi = simplify(T_1[4] + T_2[4])\n",
				"L_outflow_x1_lower = Matrix([L[0], L[1], L[2], L[3], K*(p - p_t) - (1 - beta)*T_phi, L[5]])\n",
				"dQ_dx_outflow_x1_lower = simplify(S * Inverse(lambda_waves) * L_outflow_x1_lower)\n", "\n",
				"common_exprs_lower, final_expr_lower = cse(dQ_dx_outflow_x1_lower, list=False)\n", "for var, val in common_exprs_lower:\n",
				"    print(cxxcode(val, assign_to=var))\n", "print(cxxcode(final_expr_lower, assign_to='dQ_dx'))"
			]
		}
	],
	"metadata" : {
		"kernelspec" : {"display_name" : "Python 3", "language" : "python", "name" : "python3"},
		"language_info" : {
			"codemirror_mode" : {"name" : "ipython", "version" : 3},
			"file_extension" : ".py",
			"mimetype" : "text/x-python",
			"name" : "python",
			"nbconvert_exporter" : "python",
			"pygments_lexer" : "ipython3",
			"version" : "3.11.5"
		},
		"orig_nbformat" : 4
	},
	"nbformat" : 4,
	"nbformat_minor" : 2
}
